当我尝试将非 ASCII 值分配给 char 变量时到底发生了什么?

问题描述 投票:0回答:0

我知道字符的存储方式是首先将它们从 ASCII 表转换为等价的整数,然后将该整数转换为二进制。 我也知道这样一个事实,如果我将一个整数值分配给一个大于 ASCII 表中任何整数等价物的 char,那么只有该整数的二进制表示的最后 8 位将存储在我的 char 中. 但是我不明白的是,当我在 char 变量中插入一个不是有效字符的“char”值时发生了什么。

如果我对它们的存储方式的理解有误,也请纠正我。

#include <iostream>
using namespace std;

int main() {
  char ch = '©';
  char ch1 = '10';
  cout << ch << endl;
  cout << ch1 << endl;
}

这是我尝试在 VS Code 中运行此代码时的输出。

Output

c++ character-encoding type-conversion character
© www.soinside.com 2019 - 2024. All rights reserved.