- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络字节顺序
1 字节序
由于不同的计算机系统采用不同的字节序存储数据,同样一个4字节的32位整数,在内存中存储的方式就不同. 字节序分为小尾字节序(Little Endian)和大尾字节序(Big Endian), Intel处理器大多数使用小尾字节序, Motorola处理器大多数使用大尾(Big Endian)字节序;
小尾就是低位字节排放在内存的低端,高位字节排放在内存的高端。例如一个4字节的值为0x1234567的整数与高低字节对应关系:
01
23
45
67
Byte3
Byte2
Byte1
Byte0
高位字节--à---------à--------------à低位字节
将在内存中按照如下顺序排放:
内存地址序号
字节在内存中的地址
16进制值
0x03
Byte3
01
0x02
Byte2
23
0x01
Byte1
45
0x00
Byte0
67
大尾就是高位字节排放在内存的低端,低位字节排放在内存的高端。例如一个4字节的值为0x1234567的整数与高低字节对应关系:
01
23
45
67
Byte3
Byte2
Byte1
Byte0
高位字节--à---------à--------------à低位字节
将在内存中按照如下顺序排放:
内存地址序号
字节在内存中的地址
16进制值
0x03
Byte0
67
0x02
Byte1
45
0x01
Byte2
23
0x00
Byte3
01
2 网络字节序
TCP/IP各层协议将字节序定义为大尾,因此TCP/IP协议中使用的字节序通常称之为网络字节序。
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。
3 字串在内存中的存储(intel系列)
字串和整数是相反的,是安字串的索引从低到高存储到内存中的;
char s[4] = “abc”;
a
b
c
/0
s[0]
s[1]
s[2]
s[3]
将在内存中按照如下顺序排放:
内存地址序号
16进制值
指针P的位置
0xbffeadf7
/0
p+3
0xbffeadf6
c
p+2
0xbffeadf5
b
p+1
0xbffeadf4
a
p
int main(void)
{
char s[4] = abc;
char *p = s;
printf(%02x, %02x, %02x, %02x/n, s[0], s[1], s[2], s[3]);
printf(%02x, %02x, %02x, %02x/n, p, p+1, p+2, p+3);
printf(%c, %c, %c, %c/n, s[0], s[1], s[2], s[3]);
return 0;
}
输出结果:
[netcool@HFINMSP2 demo]$ ./demo001
bffeadf4, bffeadf5, bffeadf6, bffeadf7
bffeadf4, bffeadf5, bffeadf6, bffeadf7
a, b, c,
4 整数数组在内存中的存储(intel系列)
同字串一样,但是数组里的每一个整数的存储是按照小尾字节序;
5 linux系统中的处理方法
网络字节序作为一个标准字节序,如果系统并没有提供相关的转换函数,我们可以通过以下4个宏实现本地字节序和网络字节序的相互转换:
htons():将16位无符号整数从本地字节序转换成网络字节序
htonl():将32位无符号整数从本地字节序转换成网络字节序
ntohs():将16位无符号整数从网络字节序转换成本地字节序
ntohl():将32位无符号整数从网络字节序转换成本地字节序
您可能关注的文档
- 第二讲 巧解方阵问题.doc
- 第二课 让我们的生命更有价值(复习).doc
- 第三章 小学生低年级.doc
- 第五单元 多边形的面积学案设计.doc
- 第二章 基础教育的性质功能与目标.ppt
- 第二节 中国地理分区.ppt
- 第二节牛传染性鼻气管炎.ppt
- 第二节 世界地理分区.ppt
- 第五讲 数字问题.doc
- 第五讲:函数专题(三).doc
- 2025广西崇左市从“五方面人员”中选拔乡镇 领导班子成员75人备考题库附答案解析.docx
- 《AI医疗咨询评估:2025年在线问诊合规性技术要求》.docx
- 2025广西崇左市天等县直初中学校教师公开竞聘36人参考题库附答案解析.docx
- 2025广西河池市金城江区机关事业单位竞争性转任和选聘干部82人备考题库附答案解析.docx
- 2025广西桂林电子科技大学校医院医务工作人员招聘2人备考题库附答案解析.docx
- 2025广西崇左市天等县直初中学校教师公开竞聘36人参考题库附答案解析.docx
- 2025广西崇左市消防救援支队机关政府专职人员招聘11人备考题库附答案解析.docx
- 2025广西壮族自治区残疾人劳动就业指导中心公开招聘1人参考题库附答案解析.docx
- 2025广西百色市西林县那劳镇储备村级后备人才备考题库附答案解析.docx
- 2025广西壮族自治区工业促进和中小企业服务中心遴选20人备考题库附答案解析.docx
原创力文档


文档评论(0)