C语言简单程序不懂,请各位老大解释一下!
C语言简单程序不懂,请各位老大解释一下!
日期:2021-07-28 17:10:58 人气:1
输出结果是由两条printf()语句得出的:
printf("%d→%u\n",b,a);
其中%d是十进制,所以%d就输出-1,然后→照写,最后%u是无符号数,把-1写成二进制形式:1000 0000 0000 0001(最高位为符号位,因为是负数,所以最高位为1),因为在计算机里数字都是用补码表示的,所以把以上的二进制(原码)写成补码为:(1111 1111 1111 1111)2=(65535)10(补码=反码+1)
所以最后输出结果为:-
printf("%d→%u\n",b,a);
其中%d是十进制,所以%d就输出-1,然后→照写,最后%u是无符号数,把-1写成二进制形式:1000 0000 0000 0001(最高位为符号位,因为是负数,所以最高位为1),因为在计算机里数字都是用补码表示的,所以把以上的二进制(原码)写成补码为:(1111 1111 1111 1111)2=(65535)10(补码=反码+1)
所以最后输出结果为:-