C语言中short取值的问题

参照下面代码
已知short占2字节大小、char占1字节大小;
1 为什么还能把0x1122这么长的位数赋给x ?
2 同理为什么结果里x0=0x22,x1=0x11,char不是只占1字节大小吗?
————————————
#include<iostream.h>
#include<string>
int main()
{
short int x;
char x0,x1;
x=0x1122;
x0=((char *)&x)[0];
x1=((char *)&x)[1];
printf("x0=0x%x,x1=0x%x",x0,x1);
return 0;
}
结果:x0=0x22,x1=0x11

  你没理解16进制,16进制,每一位相当于4位二进制,所以0x1122正好是2个字节的整数,可以赋值给short,因为char是占一个字节,而0x11这样的显然是占1个字节啊,也不会整数举出的。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网