我有一个问题需要任何专家的指导:
由于具有
short类型的值作为参数传递给printf()函数,它将自动提升为int类型,这就是为什么printf()函数将值视为int类型而不是short类型的原因。所以基本上
shorttype 是 16 位宽,0000000000000000而inttype 是 32 位宽,即00000000000000000000000000000000.假设我
num用shorttype 声明了一个变量调用并将其初始化为 -32 的值,这意味着该short类型的最高有效位将是1,即0000000011100000。当我将此值传递给 时
printf(),它会被转换为int类型,所以它会变成00000000000000000000000011100000.在步骤 4 中,当它转换为 时
int,最高有效位是0。为什么,当我使用说明
%hd符甚至说明%d符时,它仍然会提示我输入负值而不是正值?