short与int型在内存中的存储形式

int main()  
{  
	char p[4]={1,2,3,4};
	cout<<*((short*)p)<<endl;
	cout<<*((short*)p+1)<<endl;
	return 0;  
}
结果
程序运行的结果为上述的原因是:
	计算机有字节顺序之分,这与机器有关,分为低端字节计算机和高端字节计算机, 所以在不同的计算机里,存储形式可能不一样。
在低端字节计算机中,short 型 字节的顺序是由小到大的,即低位字节在前,高位字节在后;  高端字节计算机short 型字节的顺序是由大到小的,即高位字节在前,低位字节在后。

采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。到目前为止,采用大端或者小端进行数据存放,其孰优孰劣也没有定论。有的处理器系统采用了小端方式进行数据存放,如Intel的奔腾。有的处理器系统采用了大端方式进行数据存放,如IBM半导体和Freescale的PowerPC处理器。不仅对于处理器,一些外设的设计中也存在着使用大端或者小端进行数据存放的选择。

unsigned short 值 25的二进制是 : 0000 0000 0001 1001,
在低端字节计算机中,按照低位字节在前,高位字节在后,就是:
                                               1001 1000  0000 0000,
在高端字节计算机中,按照高位字节在前,低位字节在后,就是:
                                               0000 0000   0001 1001,
unsigned int  值25的二进制是:0000 0000  0000 0000  0000 0000  0001 1001,
在低端字节计算机中,按照低位字节在前,高位字节在后,就是:
                                               1001 1000  0000 0000  0000 0000  0000 0000,
在高端字节计算机中,按照高位字节在前,低位字节在后,就是:                                               
                                               0000 0000  0000 0000  0000 0000  0001 1001,
我们目前常用的 PC 几乎都是 低端字节计算机。
上题中,指针p指向空间存放数据为1000 0000,0100 0000,1100 0000,0010 0000.
p经过(short*)p转换后,*(p)返回前两个空间的存放的数据为1000 0000,0100 0000,因为低字节在前,高字节在后,所以最后的值为;同理, *(p+1)返回后两个空间的存放的数据,1027=
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值