












#include <stdio.h>
int main() {
char ch = 1;// 0000 0001
short sh = ch;// 0000 0000 0000 0001
printf("%d %d\n",ch,sh);
ch = -1;
// 1000 0001 原码 ch
// 1111 1110 反码
// 1111 1111 补码
sh = ch;
// 1111 1111 1111 1111 补码 有符号数,最高位是符号位,权重-2^15。 直接使用权重计算结果 (-2^15)+(2^15-1) = -1
// 1111 1111 1111 1110 反码
// 1000 0000 0000 0001 原码 -1
printf("%d %d\n", ch, sh);
return 0;
}


该代码示例展示了C语言中字符型(char)和短整型(short)之间的转换。当赋值为正负1时,讨论了原码、反码和补码的概念,特别是在有符号数的表示中,如何计算和理解数值的存储方式。
246

被折叠的 条评论
为什么被折叠?



