数据存储大小端 网络字节序

一、概念

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

小端模式:数据的低位存放在内存的低地址中

二、数据的高低位

首先需要清楚一段数据存储高低位区分

 联想记忆最右边为16^0 下来16^1 比如下图二进制为例:

 三、内存的高低位

以vs2019为例来看,看到这个内存监视窗口,

从左到右,从上到下均是按照由小到大顺序排列的

 四、区分

低地址数据放高位即为大端

低地址数据放低位即为小端

 五、检测大小端程序

【方式一】利用char类型只有一个字节特性

 如果*(char*)&a==1 那么即为小端。

#include<iostream>
using namespace std;

bool check()
{
	int a = 1;
	return *(char*)&a == 1;
}

int main()
{
	if (check())
		cout << "小端" << endl;
	else
		cout << "大端" << endl;
	return 0;
}

六、网络字节序

字节序:cpc对内存中数据以字节为单位进行存取的顺序

即分为小端字节序和大端字节序

int a = 0x01020304

大端字节序:01 02 03 04

小端字节序:04 03 02 01

网络字节序不同的俩台主机进行通信,就会造成数据传输时的数据二义。

解决方案:网络传输数据,使用统一的字节序标准---网络字节序(采用大端字节序

 因此不需要关心传输数据时对方的主机字节序,因为发送到对方网络中的都为网络字节序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值