网络字节序与主机字节序

不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序

最常见的有两种

1. Little endian(小头):将低序字节存储在起始地址

2. Big endian(大头):将高序字节存储在起始地址

内存地址: (起始地址)低位 ------> 高位

二进制编码: 0x高位|低位

FE FF : 大头,最直观

FF FE:小头,需要颠倒

LE little-endian

最符合人的思维的字节序

地址低位存储值的低位

地址高位存储值的高位

怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说

低位值小,就应该放在内存地址小的地方,也即内存地址低位

反之,高位值就应该放在内存地址大的地方,也即内存地址高位

BE big-endian

最直观的字节序

地址低位存储值的高位

地址高位存储值的低位

为什么说直观,不要考虑对应关系

只需要把内存地址从左到右按照由低到高的顺序写出

把值按照通常的高位到低位的顺序写出

两者对照,一个字节一个字节的填充进去

例子:在内存中双字0x01020304(DWORD)的存储方式

内存地址

4000 4001 4002 4003

LE 04 03 02 01

BE 01 02 03 04

例子:如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为

big-endian   little-endian

0x0000   0x12       0xcd

0x0001   0x23       0xab

0x0002   0xab       0x34

0x0003   0xcd       0x12

实验:

用sublime显示汉字 “严”在ANSIUnicodeUnicode big endianUTF-8编码方式下对应的机器码。

ANSI:    文件的编码显示 D1 CF, 这正是“严”的 GB2312 编码,这也暗示 GB2312 是采用大头方式存储的

Unicode:  编码是四个字节 FF FE 25 4E,其中FF FE表明是小头方式存储,真正的编码是4E25

Unicode big endian: 编码是四个字节 FEFF 4E 25, 其中FEFF表示大头方式存储,因此与直观感受一样(即:编码顺序和存储顺序相同),真正的编码即为4E25

UTF-8: 编码是六个字节EF BB BF E4 B8 A5,前三个字节EF BB BF表示这是UTF-8编码,后三个E4B8A5就是的具体编码,它的存储顺序与编码顺序是一致的。

例如:chen25陈 的UTF-8编码为

同样以EF BB BF开头

资料:

https://blog.csdn.net/sunstars2009918/article/details/7274519

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

操作系统中的大头小头字节序相关推荐

  1. 网络字节顺序 大头小头问题

    网络字节顺序,老是记不住,网上搜了点资料,记录在此... 不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序  最常见的有两种: 1. Little endian:将 ...

  2. 字节序、大端字节序(Big Endian)、小端字节序(Little Endian)总结

    什么是字节序? 字节序,简单来说,指的是 超过一个字节的数据类型在内存中存储的顺序 有几种字节序? 大端字节序(Big Endian) 高位字节数据存放在内存低地址处,低位字节数据存放在内存高地址处. ...

  3. 小端字节序与大端字节序

    端模式分为:小端字节序和大端字节序,也就是字节在内存中的顺序. 小端字节序:低字节存于内存低地址:高字节存于内存高地址.如一个long型数据0x12345678 0x0029f458 0x78 0x0 ...

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

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

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

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

  6. 小端字节序和大端字节序

    端模式分为:小端字节序和大端字节序,也就是字节在内存中的顺序. 需要注意的是,对于数据来说,高字节是指最高位字节,即左边第一位! 小端字节序:低字节存于内存低地址:高字节存于内存高地址.如一个long ...

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

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

  8. 【原创】大端和小端字节序的细节

    这已经是一个被说得很烂的一个话题了,今天我想在这一篇文章补充一些细节上的东西,供备忘! 在看这篇文章之前,请先仔细看下链接这篇博文,关于字节序说得很详细!http://blog.chinaunix.n ...

  9. 【计算机基础】 --- LSB、MSB与大/小端字节序

    1.LSB与MSB的概念 LSB:least significant bit 表示二进制数据的最低位 MSB : most significant bit 表示二进制数据的最高位 wiki对LSB和M ...

最新文章

  1. 『转载』Debussy快速上手(Verdi相似)
  2. Selenium 下拉框处理
  3. 2019年计算机视觉将继续承担哪些作用?
  4. [Oracle PL/SQL]当数据表设计成具有父ID的时候,当需要选择所有与父ID同根生的所有节点的时候,使用的SQL语句...
  5. 严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen('fscanf'、strcmp):This function or variable may be unsafe. 最全解决办法
  6. Sql Server2008——远程过程调用失败
  7. Oracle优化 -- 关于Database Buffer Cache相关参数DB_CACHE_SIZE的优化设置
  8. 计算机考试的基础知识高考,计算机考试基础知识试题..doc
  9. 基于zeromq的高性能分布式RPC框架Zerorpc 性能测试
  10. 避免使用GroupByKey
  11. 思杰 Citrix xen server 6.2 企业级布署(一)
  12. xlua build时 报错处理
  13. eclipse 输入提示插件_【STM32】搭建基于Eclipse平台的STM32调试环境
  14. SAP UI5 初学 ( 一 )、简介
  15. 小米手机不断自己重启问题解决
  16. 抖音作品别人保存不了,这个方法可快速将抖音短视频下载到本地
  17. 第4章 手机平板要兼顾,探究碎片
  18. 关于音响系统参数测试的主要参数之一: THD+N(总谐波失真加噪声)
  19. 全国计算机等级考试一级大纲,全国计算机等级考试大纲(一级WIN)
  20. Spark Streaming的容错和数据无丢失机制(WAL机制)

热门文章

  1. 【Node 连载 5/9】如何用 Node 建设企业级应用网关
  2. 苹果手机(iPhone)连接Exchange Online邮件
  3. golang 初始化并赋值_golang 结构体初始化时赋值格式介绍
  4. 计算机应用能力达中级及以上水平,中级职称填报说明及准备材料
  5. ecu根据什么信号对点火提前角_【判断题】ECU根据(氧传感器)信号对点火提前角实行反馈。...
  6. java中英文汉语混合排序_Android实现列表数据按名称排序、中英文混合排序
  7. Windows中的Hook机制
  8. 神墓部分楼盘价格已比周边低出近千元
  9. linux进程的内存空间,Linux进程内存统计
  10. Surging 分布式微服务框架使用入门