字节顺序

字节顺序,又称端序或者尾序,指组成多字节的字的字节排列顺序。
对于多字节数据,在不同的处理器的存放方式主要有大端序和小端序,下面以0X0A0B0C0D为例。

大端序

最高位字节存储在最低的内存地址处。若地址自左向右增长,那么存放顺序就是0X0A,0X0B,0X0C,0X0D。
网络传输一般采用大端序,也被称之为网络字节序,或网络序。

小端序

低位存放在低地址处,高位存放在高地址处,就是小端序。若地址自左到右增长,那么存放顺序就是0X0D,0X0C,0X0B,0X0A。
X86等处理器为小端序。

如何判断字节顺序

num为0X1234,高字节为0X12,低字节为0X34。若地址自左向右增长,则大端序的存放顺序是0X12,0X34;小端序的存放顺序是0X34,0X12。将num强制转换为int8类型,就是从低地址向高地址取8位。若res等于0X12,则是大端序;若res等于0X34,则是小端序。

func isLittleEndian() bool {
    num := int16(0X1234)
    res := int8(num)
    if res == 0X34 {
        return true
    }
    return false
}

参考

字节顺序

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 在几乎所有的机器上,多字节对象都被存储为连续的字节序列。例如在C语言中,一个类型为int的变量x地址为0x1...
    啤酒找尿布阅读 5,416评论 0 2
  • 一、什么是字节序 字节顺序,是指数据在内存中的存放顺序 举例说明什么是字节顺序 使用16进制表示两个数:0x123...
    QiShare阅读 2,312评论 0 1
  • 字节存储顺序,简称字节序,又称端序或尾序(英语:Endianness)。是指多字节数据在计算机内存中的存储顺序(即...
    唐大方阅读 5,199评论 0 0
  • 1、定义 字节顺序,又称端序或尾序(英语:Endianness),在计算机科学领域中,指电脑内存中或在数字通信链路...
    玉宁龙阅读 4,373评论 0 0
  • 概念 字节序,即多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。 来自百度百科 可分为小端字节序和大端...
    freelamb阅读 6,060评论 0 4