>字节序

在网络传输的协议和数据报中,常常遇到字节序的概念,也就是大端字节序(big endian)和小端字节序(little endian),这是计算机的两种存储数据的方式:

大端字节序:高位字节在前,低位字节在后(一致:低字节在低地址)。

小端字节序:低位字节在前,高位字节在后(不一致:低字节在高地址)。

>举个栗子:

对于0X1234567:

(之前没有写地址就很迷:按照书写习惯,原始的数字肯定是左边为高字节,并没有地址的概念。加入地址概念后,认为左边为低地址,右边为高地址,再次按字节顺序填入原始数据,会发现大端与书写习惯相同,小端相反;所以当获得了一个小端的字节序列,要读取它,将其转为原始的数据,就要倒转一下,因为协议是根据原始数据进行制定的。)

>why

>>首先,为什么会有小端字节序?

答案是,计算机电路先处理低位字节,效率比较高,因为计算都是从低位开始的。所以,计算机的内部处理都是小端字节序。

但是,人类还是习惯读写大端字节序。所以,除了计算机的内部处理,其他的场合几乎都是大端字节序,比如网络传输和文件储存。

>>计算机处理字节序的时候,不知道什么是高位字节,什么是低位字节。它只知道按顺序读取字节,先读第一个字节,再读第二个字节。

如果是大端字节序,先读到的就是高位字节,后读到的就是低位字节。小端字节序正好相反。

理解这一点,才能理解计算机如何处理字节序。

>>字节序的处理,就是一句话:

"只有读取的时候,才必须区分字节序,其他情况都不用考虑。"

处理器读取外部数据的时候,必须知道数据的字节序,将其转成正确的值。然后,就正常使用这个值,完全不用再考虑字节序。

即使是向外部设备写入数据,也不用考虑字节序,正常写入一个值即可。外部设备会自己处理字节序的问题

理解字节序(大小端)相关推荐

  1. 什么是字节序(端序、低端字节序、高端字节序、网络字节序)

    前言 一个内容为12(字符串)的文本文件,它的第一个字节是什么(小端序)?如果你的回答是0x32,那你真的应该好好理解下字节序了.如下图所示,我这里的正确答案是0x31.当然如果你的回答是不一定,这似 ...

  2. 【转】理解字节序 大端字节序和小端字节序

    转自:https://www.cnblogs.com/gremount/p/8830707.html 以下内容参考了 http://www.ruanyifeng.com/blog/2016/11/by ...

  3. java 大端字节序_理解字节序 大端字节序和小端字节序

    以下内容参考了 http://www.ruanyifeng.com/blog/2016/11/byte-order.html https://blog.csdn.net/yishengzhiai005 ...

  4. 什么是Little Endian和Big Endian?(Endianness:字节序、端序、尾序)

    缅怀先驱:提出字节序概念的以色列裔计算机科学家Danny Cohen1,于2019-08-22病逝,享年81岁2. 目录 名词释义 概念由来 设计原理 应用场景 NBO(Net Bytes Order ...

  5. java 大端字节序_理解字节序

    1.什么是字节序 字节序,顾名思义就是字节的顺序.更具体的讲,它是多字节数据存储和传输时,字节的顺序. 2.为什么有"字节序"这个东西? 因为物理内存是以字节为单位进行数据存储,也 ...

  6. 高地址和低地址、高字节低字节、大小端模式的转换,存储顺序

    参考博客 https://blog.csdn.net/ce123_zhouwei/article/details/6971544 https://my.oschina.net/alphajay/blo ...

  7. 大端字节序小端字节序(网络字节序主机字节序)

    大端字节序:整数的高位字节存储在内存的低地址处,低字节存储在内存的高地址处. 小端字节序:整数的高位字节存储在内存的高地址处,低字节存储在内存的低地址处. 一般pc大多采用小端字节序,也称为主机字节序 ...

  8. 高地址和低地址、高字节低字节、大小端模式(及如何互换),存储顺序(!!)

    参考博客 https://blog.csdn.net/ce123_zhouwei/article/details/6971544 https://my.oschina.net/alphajay/blo ...

  9. 理解字节序 [Understanding Big and Little Endian Byte Order]

    原文地址 (本文对于字节序讲解的很清楚,容易理解.) Problems with byte order are frustrating, and I want to spare you the gri ...

最新文章

  1. 根据坐标如何标记图片_如何玩转FloodFill算法?
  2. linux基础篇-10,权限管理chown chgrp chmod umask
  3. sql2000安装时报错的问题--实例挂起和267目录名无效
  4. 龙芯开源社区上线.NET主页
  5. Javascript this关键字 指向详解
  6. 【java】创建一个线程,可以对其名称进行设置
  7. 大中型网站使用图片域名的必要性原因
  8. android定位坑简书,android webview 定位问题
  9. librtmp linux下 编译,LibRtmp编译并导入Android Studio
  10. java面试题及答案2020 阿里(八)
  11. 小米8刷官方欧版rom并从国内版rom提取安装MiPay、门卡模拟
  12. 【二级等保】二级等保安全物理环境要求有哪些?
  13. 云聚创新力量 领航数字未来 峯云5G·联通沃云峰会2019成功举行
  14. 计算广告CTR预估系列(九)--NFM模型理论与实践
  15. matlab获得模型切面,基于MATLAB的STL模型切片分层算法
  16. Solr学习 DIH增量、定时导入并检索数据
  17. Spring Security内部工作原理
  18. 医学文献资料档案全文收集攻略
  19. 计算机专业学什么语言最能找工作
  20. CoreDNS篇8-健康检查

热门文章

  1. 《go 语言程序设计》读书笔记(六)Goroutine与系统线程的区别
  2. r语言集合补集_【高中数学必修1研读】之一“第一章 集合与函数概念”
  3. 关于数据权限的几个问题
  4. nginx的限流配置
  5. mysql里的各种锁
  6. Springboot+Spring-Security+JWT 实现用户登录和权限认证
  7. 从相册获取图片,并获取裁剪后图片(系统自带)
  8. MongoDB副本集成员状态
  9. Smokeping的参数使用说明
  10. 【转载】一百年后,人类怎样编程?