这道c语言题为什么是这样?

日期:2021-11-22 18:02:16 人气:1

这道c语言题为什么是这样?

无符号short整型的取值范围是0~65535。计算机中任何数据都是以补码的形式存储的。
-1的原码是1 0000 0000 0000 0001
第一个1是符号位,1表示负数,0表示正数。
正数的补码和原码一样,负数的补码是在原码的基础上,取反加一。所以
-1的补码是0 1111 1111 1111 1111
因为题目中定义的是无符号整型,所以计算机认为它存的就是一个非负数,直接将上面-1的补码换算为十进制数65535。
    A+
热门评论