main() { unsigned int a; int b=-1; a=b; printf("%u",a); } 程序运行后的输出结果是

日期:2017-07-01 21:34:02 人气:1

main() { unsigned int a; int b=-1; a=b; printf("%u",a); } 程序运行后的输出结果是

如果你的编译环境定位int型是16位(如Turbo C),int型的表示范围是[-32768,32767]。 a是无符号整数,b是有符号整数。区别是a的最高位表示数值,b的最高位表示符号(1表示负数,0表示非负数) a得到-1。 [-1]原码:1000 0000 0000 0001 按除符号位外,各位取反,末位加1的规则,将负数的原码转换为补码: [-1]补码:1111 1111 1111 1111 即无符号数a的二进制最终表示是11111111 11111111,对应十进制是65535,
    A+
热门评论