为什么c语言输出-1不是65535 ?

日期:2019-11-23 22:10:28 人气:2

为什么c语言输出-1不是65535 ?

变量x为无符号数,2Bytes的存储单元的二进制存储的数为 1111 1111 1111 1111,即0xFFFF。 用%d输出是该变量存储单元内容的有符号数,此时第一位1代表负数。C语言默认有符号数存储为补码,所以: 补码:1111 1111 1111 1111 反码:1111 1111 1111 1110 原码:1000 0000 0000 0001 因此输出原码的十进制,即“-1”
    A+
热门评论