C语言中,把-3赋值给unsigned定义的变量得到的值是多少,为什么?

日期:2016-11-17 20:08:13 人气:1

C语言中,把-3赋值给unsigned定义的变量得到的值是多少,为什么?

以16位为例来分析,-3的补码是:1111 1111 1111 1101,其中最高位为符号位,0为正,1为负,现在如果把-3赋值给无符号的变量,那么符号位就变成数值位了,输出的结果就是10进制数的65533。示例程序如下: #include int main(){ unsigned short a=-3; printf("%u\n",a); return 0;}输出结果: 65533
    A+
热门评论