c语言【急】

来源:百度知道 编辑:UC知道 时间:2024/06/03 11:08:31
下列语句的输出结果是
int a =-1;
printf("% x",a);
结果是3个f吗 请简单说明一下

“%x”,无符号十六进制定点格式。

int型数据-1在内存中是1111111111111111(注1:C编译器中int型数据只占2个字节)

二进制数据1111111111111111以十六进制输出应该是ffff啊。有4个“f”,怎么有3个?我算错了?

(注2:如果int型数据占4个字节,那么应该输出8个“f”啊(ffffffff))

怎么会是3个F呢

应该是8个F的
因为-1的补码是32个1 用十六进制显示就是8个F
如果你机器是16位机 也应该显示4个F 不应该单出3个的