在像 C/C++ 这样的语言中,当我们这样做时:
char c = 'A';
我们分配内存以二进制形式存储数字 65:
stuff_to_the_left_01000001_stuff_to_the_right
那么如果我们这样做:
int i = (int) c;
据我了解,我们是在对编译器说,它应该将布局为 的位模式解释为stuff_to_the_left_01000001__00000000_00000000_00000000_stuff_to_the_right
,这可能是也可能不是 65。
当我们在操作期间执行强制转换时也会发生同样的情况
cout << (int) c << endl;
在上述所有内容中,我得到了字符的“A”和十进制的 65。我是幸运还是我错过了一些基本的东西?