gpt4 book ai didi

c - c中的短整型变量

转载 作者:行者123 更新时间:2023-12-01 15:54:21 25 4
gpt4 key购买 nike

下面的程序

short b =-10;
printf("%x %d",b,sizeof(b));

输出(与 2008 年相比)

 FFFFFFF6 2 

为什么不

 FFF6 2 

signed char也是一样。

最佳答案

这是由于整数类型提升。

您的短裤正在隐式升级为 int。 (这里是 32 位)所以在这种情况下这些是符号扩展提升。

因此,您的 printf() 正在打印出完整 32 位 int 的十六进制数字。

当您的 short 值为负时,符号扩展将用 1 填充前 16 位,因此您得到 fffffff6 而不是 fff6。


格式字符串中的占位符 %x 将对应的参数解释为 unsigned int。

要将参数打印为短参数,请将长度修饰符 h 添加到占位符:

printf("%hx", hex);

Here h Indicates that the conversion will be one of d i o u x X or n and the next pointer is a pointer to a short int or unsigned short int (rather than int).

键盘链接:http://codepad.org/aX2MzY0o

看到这个:http://en.wikipedia.org/wiki/Printf_format_string#Format_placeholders

关于c - c中的短整型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25204088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com