若C是字符型变量,C的初值为-1,则函数p?

我们所能接触到的计算机都是以补码的形式存储我们的信息! 你的问题还要看你使用的是什么编译器!不过大多数情况下字符变量占一个字节! -1的补码是:11111111(补码是通过原码取反加1得到) 然后输出时用无符号形式输出那么这些二进制位所表达的意义是:0xFF即十进制255 但是你会发现其结果不是255,这是为什么呢? printf是一个函数,当你想用无符号形式输出时,函数内部会声明一个整形通过值传递将-1传给它,由于整形是2个字节补码是0xFFFF所以打印出来的结果是65535

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

参与评论

游客评论不支持回复他人评论内容,如需回复他人评论内容请