有关于c语言的问题
有关于c语言的问题
日期:2021-06-26 20:11:09 人气:1
因为 a 是 unsigned int 型,就是无符号整型,范围为 0-65535 (按你的环境)
a=65535 在内存中的2个字节是全1存放的
11111111 11111111
但当你以 %d (有符号整型)输出的时候,系统会把这个全1当有符号数输出
第一个1为符号位,1代表负
后面15个1的原码为1,所以就输出-1
有关原码和补码的内容你可以网上搜下
a=65535 在内存中的2个字节是全1存放的
11111111 11111111
但当你以 %d (有符号整型)输出的时候,系统会把这个全1当有符号数输出
第一个1为符号位,1代表负
后面15个1的原码为1,所以就输出-1
有关原码和补码的内容你可以网上搜下