unsigned int a=65535 a=%d 输出a=-1

2024年11月15日 03:26
有2个网友回答
网友(1):

%u 表示输出的是无符号数,-2的二进制表示是11111110,所以用无符号数表示就是65534
%d表示输出的是有符号的整数,如果是正号就直接输出数字,负数的话是要输出负号的,所以输出了-2

网友(2):

d是有符号整数!其范围应该是-32768~32767;a=65535,而65535其二进制表示为1111111111111111,而在计算机里面是用补码表示,所以就变成-1了
而下面同理:u为无符号整数,其范围才是0~65535