美文网首页
弄清字节序

弄清字节序

作者: UULU | 来源:发表于2021-01-15 20:50 被阅读0次

BigEndian、LittleEndian 字节在内存地址中的存放顺序,简称字节序。

弄清概念

网络上常把把 Endian 译成端,简称大端、小端,很容易产生歧义,端指的是开头还是结尾。

endian - 组成 end-ianend 结束的意思,-ian表示"……地方人,信仰…….教的人,从事……职业的人",所以就是结束的地方,及末端、结尾处。

如uint32值1,存储在内存中

大端字节序:00 00 00 01 (视觉上结尾大)
小端字节序:01 00 00 00 (视觉上结尾小)

内存地址:低地址(开头) -> 高地址(结尾)
  • BigEndian:大(尾)端 - 值从结尾处放,结尾先有值,开头为 0,所以叫大尾端
  • LittleEndian:小(尾)端 - 值从开头处先放,开头先有值,结尾为 0,所以叫小尾端
Capture.PNG

应用场合

一般来说,x86 系列 CPU 都是 little-endian 的字节序,PowerPC 通常是 big-endian,网络字节顺序也是 big-endian 还有的 CPU 能通过跳线来设置 CPU 工作于 Little endian 还是 Big endian 模式。

代码实例

package main

import (
    "encoding/binary"
    "fmt"
)

func main() {
    var a uint32 = 257

    b := make([]byte, 4)
    binary.BigEndian.PutUint32(b, a)
    fmt.Println(b)
    for i := range b {
        fmt.Printf("%p\n", &b[i])
    }
    fmt.Println("")

    c := make([]byte, 4)
    binary.LittleEndian.PutUint32(c, a)
    fmt.Println(c)

    for i := range c {
        fmt.Printf("%p\n", &c[i])
    }
}

BigEndian: [0 0 1 1]
0xc0000b8010
0xc0000b8011
0xc0000b8012
0xc0000b8013

LittleEndian: [1 1 0 0]
0xc0000b8014
0xc0000b8015
0xc0000b8016
0xc0000b8017

相关文章

  • 弄清字节序

    假定有两字节变量: short a=0x52AE,字节序讨论的就是某个包含多字节的基本类型(单元)中,字节的存放顺...

  • 弄清字节序

    BigEndian、LittleEndian 字节在内存地址中的存放顺序,简称字节序。 弄清概念 网络上常把把 E...

  • Linux的socket API基本操作

    1.socket地址API 主机字节序和网络字节序 字节序分为大端字节序和小端字节序 大端字节序 = 一个整数的高...

  • C语言字节序转换API

    主机字节序转网络字节序 网络字节序转主机字节序 将字符串IP地址转换为网络字节序的整型数据 将网络字节序数据转换为...

  • 内存序、字面量、动态规划

    内存字节序 确认内存字节序 /* 确定你的电脑是大端字节序还是小端字节序 */include int check...

  • socket编程基础

    字节序 字节序分为大端字节序和小端字节序大端字节序: 是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内...

  • 深入理解Emoji(二) —— 字节序和BOM

    上篇主要了解了字符集和字符集编码的相关知识,其中有提到字节序的问题,这篇我们便深入探讨下这方面的知识。 字节序 字...

  • Linux高性能服务器入门

    第五章 Linux网络编程基础API 主机字节序和网络字节序 <5.1.1>Q:设定主机字节序和网络字节序是为了解...

  • 一文搞懂序列化与反序列化

    一、是什么 序列化:就是将对象转化成字节序列的过程。 反序列化:就是讲字节序列转化成对象的过程。 对象序列化成的字...

  • Linux高性能服务器开发

    公众号:畅游码海 更多高质量原创文章都在里面~ 主机字节序和网络字节序: 在32位机器上,累加器一次能装载4个字...

网友评论

      本文标题:弄清字节序

      本文链接:https://www.haomeiwen.com/subject/ujzwaktx.html