# include <studio.h> void main() { unsigned int a
1个回答
关注
展开全部
要看什么机器什么的编译器才能得出结果。
的确a=65535 十六进制是0xFFFF
但如果unsigned int 类型是4字节的,你打印出来的依然是
a=65535
如果unsigned int 类型是2字节的,这时就是-1了
因为计算机采取的是补码来保存数据的
a=65535 二进制就是1111 1111 1111 1111,这是补码,第一位是符号位,等于1时就表示是负数。
111 1111 1111 1111 减1再取反就是000 0000 0000 0001 这就是十进制的1了
再加上负号就是-1了
咨询记录 · 回答于2021-10-08
# include void main() { unsigned int a
要看什么机器什么的编译器才能得出结果。的确a=65535 十六进制是0xFFFF但如果unsigned int 类型是4字节的,你打印出来的依然是a=65535如果unsigned int 类型是2字节的,这时就是-1了因为计算机采取的是补码来保存数据的a=65535 二进制就是1111 1111 1111 1111,这是补码,第一位是符号位,等于1时就表示是负数。111 1111 1111 1111 减1再取反就是000 0000 0000 0001 这就是十进制的1了再加上负号就是-1了
这一题