我们所能接触到的计算机都是以补码的形式存储我们的信息! 你的问题还要看你使用的是什么编译器!不过大多数情况下字符变量占一个字节! -1的补码是:11111111(补码是通过原码取反加1得到) 然后输出时用无符号形式输出那么这些二进制位所表达的意义是:0xFF即十进制255 但是你会发现其结果不是255,这是为什么呢? printf是一个函数,当你想用无符号形式输出时,函数内部会声明一个整形通过值传递将-1传给它,由于整形是2个字节补码是0xFFFF所以打印出来的结果是65535
回复- 冯纪先用户2024-11-23我们所能接触到的计算机都是以补码的形式存储我们的信息! 你的问题还要看你使用的是什么编译器!不过大多数情况下字符变量占一个字节! -1的补码是:11111111(补码是通过原码取反加1得到) 然后输出时用无符号形式输出那么这些二进制位所表达的意义是:0xFF即十进制255 但是你会发现其结果不是255,这是为什么呢? printf是一个函数,当你想用无符号形式输出时,函数内部会声明一个整形通过值传递将-1传给它,由于整形是2个字节补码是0xFFFF所以打印出来的结果是655351楼
- 刘紫嫣用户2024-11-23如果用%u输出char c = -1; 默认输出unsigned int值, 16位系统-1对应2^16-1 = 65535 32位系统-1对应2^32-1 = 4294967295 最新的编译器,是32位编译器, 你如果用TC2.0是16位的2楼
- 江雨帆用户2024-11-23答案:4294967295 (现在都是32为系统,所以以32位为准) 图例: 【酷_酷_币】为您服务...3楼