内存大小端和网络字节序

背景原因:C语言中除了8bit的char,还有16bit short型,32bit long型,16bit or 32bit int型变量。由于16位32位CPU的寄存器宽度大于一个字节8bit,那么必然存在如何将多个字节安排的问题。因此就导致大端存储模式和小端存储模式。

简而言之:

大端模式:内存低地址存放数据的高位,内存高地址存放数据的低位;

小端模式:内存低地址存放数据的地位,内存高地址存放数据的高位;

如定义16位int i=0x1234


网络字节序:

TCP/IP协议规定了在网络上必须采用网络字节顺序,先收到的字节为高位,最后收到的字节为地位,也就是大端模式。由于数据传输的两端对应不同的硬件平台,采用的存储字节顺序可能不一致。char型只占1字节,无所谓大端和小端。而对于非char型,必须在数据发送到网络上之前将其转换成大端模式。

基于x86CPU的计算机使用是小端模式。大部分操作系统(windows、linux)都是小端模式。少部分,如MAC OS是大端模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值