C语言:int b=-2;printf("%u\n",b);输出结果:65534 求计算过程

日期:2022-04-09 11:56:09 人气:1

C语言:int b=-2;printf("%u\n",b);输出结果:65534 求计算过程

从你的结果来看,你的编译器将整形视为2个字节大小。这个对结果的分析没什么影响。机器中的数据都是以补码的形式存储的,最高位表示符号,正数的补码是其本身,负数的补码是其绝对值的二进制按位取反加1得到的二进制码。对于你这里的-2来说,2的二进制表示为
0000000000000010
那么-2的补码就是将上述二进制按位取反再加1
取反得:1111111111111101
再加1得:111
    A+
热门评论