理解字节序(大小端)
>字节序
在网络传输的协议和数据报中,常常遇到字节序的概念,也就是大端字节序(big endian)和小端字节序(little endian),这是计算机的两种存储数据的方式:
大端字节序:高位字节在前,低位字节在后(一致:低字节在低地址)。
小端字节序:低位字节在前,高位字节在后(不一致:低字节在高地址)。
>举个栗子:
对于0X1234567:
(之前没有写地址就很迷:按照书写习惯,原始的数字肯定是左边为高字节,并没有地址的概念。加入地址概念后,认为左边为低地址,右边为高地址,再次按字节顺序填入原始数据,会发现大端与书写习惯相同,小端相反;所以当获得了一个小端的字节序列,要读取它,将其转为原始的数据,就要倒转一下,因为协议是根据原始数据进行制定的。)
>why
>>首先,为什么会有小端字节序?
答案是,计算机电路先处理低位字节,效率比较高,因为计算都是从低位开始的。所以,计算机的内部处理都是小端字节序。
但是,人类还是习惯读写大端字节序。所以,除了计算机的内部处理,其他的场合几乎都是大端字节序,比如网络传输和文件储存。
>>计算机处理字节序的时候,不知道什么是高位字节,什么是低位字节。它只知道按顺序读取字节,先读第一个字节,再读第二个字节。
如果是大端字节序,先读到的就是高位字节,后读到的就是低位字节。小端字节序正好相反。
理解这一点,才能理解计算机如何处理字节序。
>>字节序的处理,就是一句话:
"只有读取的时候,才必须区分字节序,其他情况都不用考虑。"
处理器读取外部数据的时候,必须知道数据的字节序,将其转成正确的值。然后,就正常使用这个值,完全不用再考虑字节序。
即使是向外部设备写入数据,也不用考虑字节序,正常写入一个值即可。外部设备会自己处理字节序的问题
理解字节序(大小端)相关推荐
- 什么是字节序(端序、低端字节序、高端字节序、网络字节序)
前言 一个内容为12(字符串)的文本文件,它的第一个字节是什么(小端序)?如果你的回答是0x32,那你真的应该好好理解下字节序了.如下图所示,我这里的正确答案是0x31.当然如果你的回答是不一定,这似 ...
- 【转】理解字节序 大端字节序和小端字节序
转自:https://www.cnblogs.com/gremount/p/8830707.html 以下内容参考了 http://www.ruanyifeng.com/blog/2016/11/by ...
- java 大端字节序_理解字节序 大端字节序和小端字节序
以下内容参考了 http://www.ruanyifeng.com/blog/2016/11/byte-order.html https://blog.csdn.net/yishengzhiai005 ...
- 什么是Little Endian和Big Endian?(Endianness:字节序、端序、尾序)
缅怀先驱:提出字节序概念的以色列裔计算机科学家Danny Cohen1,于2019-08-22病逝,享年81岁2. 目录 名词释义 概念由来 设计原理 应用场景 NBO(Net Bytes Order ...
- java 大端字节序_理解字节序
1.什么是字节序 字节序,顾名思义就是字节的顺序.更具体的讲,它是多字节数据存储和传输时,字节的顺序. 2.为什么有"字节序"这个东西? 因为物理内存是以字节为单位进行数据存储,也 ...
- 高地址和低地址、高字节低字节、大小端模式的转换,存储顺序
参考博客 https://blog.csdn.net/ce123_zhouwei/article/details/6971544 https://my.oschina.net/alphajay/blo ...
- 大端字节序小端字节序(网络字节序主机字节序)
大端字节序:整数的高位字节存储在内存的低地址处,低字节存储在内存的高地址处. 小端字节序:整数的高位字节存储在内存的高地址处,低字节存储在内存的低地址处. 一般pc大多采用小端字节序,也称为主机字节序 ...
- 高地址和低地址、高字节低字节、大小端模式(及如何互换),存储顺序(!!)
参考博客 https://blog.csdn.net/ce123_zhouwei/article/details/6971544 https://my.oschina.net/alphajay/blo ...
- 理解字节序 [Understanding Big and Little Endian Byte Order]
原文地址 (本文对于字节序讲解的很清楚,容易理解.) Problems with byte order are frustrating, and I want to spare you the gri ...
最新文章
- 根据坐标如何标记图片_如何玩转FloodFill算法?
- linux基础篇-10,权限管理chown chgrp chmod umask
- sql2000安装时报错的问题--实例挂起和267目录名无效
- 龙芯开源社区上线.NET主页
- Javascript this关键字 指向详解
- 【java】创建一个线程,可以对其名称进行设置
- 大中型网站使用图片域名的必要性原因
- android定位坑简书,android webview 定位问题
- librtmp linux下 编译,LibRtmp编译并导入Android Studio
- java面试题及答案2020 阿里(八)
- 小米8刷官方欧版rom并从国内版rom提取安装MiPay、门卡模拟
- 【二级等保】二级等保安全物理环境要求有哪些?
- 云聚创新力量 领航数字未来 峯云5G·联通沃云峰会2019成功举行
- 计算广告CTR预估系列(九)--NFM模型理论与实践
- matlab获得模型切面,基于MATLAB的STL模型切片分层算法
- Solr学习 DIH增量、定时导入并检索数据
- Spring Security内部工作原理
- 医学文献资料档案全文收集攻略
- 计算机专业学什么语言最能找工作
- CoreDNS篇8-健康检查