理解字节序-大端序和小端序的区别(数据的高低字节)

  • 2024-05-23 : 更新文章内容,使的文章可读性更强。优化文章布局,更新B站视频链接。

  • 大端字节序和小端字节序

    1. Big-Endian(大端):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。MODBUS协议采用大端。(和人看数字一样的顺序,先看高位)
    2. Little-Endian(小端):低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。

    数据的高低字节

    在十进制中靠左边的是高位字节,靠右边的是低位字节,在其他进制也是如此。

    • 例如 0x12345678,从左至右阅读,高位到低位的字节依次是0x12、0x34、0x56和0x78。

    内存的高低地址

    img
    • 例如 0x12345678,从左至右阅读,依次是低地址在前高地址在后。0x12、0x34、0x56、0x78

    示例

    数据: 0x1234 大小端传输:

    在十进制中我们都说靠左边的是高位字节,靠右边的是低位字节,在其他进制也是如此。就拿 0x1234来说

    为什么可以拆分成0x12 和 0x34 ,计算机中处理数据是一个字节(8位)为最小单位去处理,所以0x12构成了一个完整的字节

    图例展示:Clip_2024-05-23_14-29-18

    数据:0x1234

    高位字节:0x12

    低位字节:0x34

    地址: 0x00 0x01

    其中,地址 0x00 是低地址,0x01是高地址。

    大端(高位字节在前): 0x12 0x34

    小端(低位字节在前): 0x34 0x12

    为什么要有字节序

    计算机电路先处理低位字节,效率比较高,因为计算都是从低位开始的。所以,计算机的内部处理都是小端字节序。在计算机内部,小端序被广泛应用于现代 CPU 内部存储数据;而在其他场景,比如网络传输和文件存储则使用大端序

    • 计算都是从低位开始的,因此计算机内部处理采用小端序,效率较高。
    • 而大端序存储的时候,由于符号位在高位,因此对于数据正负或大小的判断也就方便许多。另外,大端序也更符合人类的阅读习惯。

    高8位(/256)和低8位 (%256)

    因为要求的是高8位以及低8位,此处的256是 2的8八次方。

    示例:

    0001 1111 1111 = 511

    0000 1111 1111 = 255

    显而易见的,如果想得到一个数的低8位,只需要将这个数 %256 ,那么取得的余数就是该数的低八位。

    相反的,将这个数 /256 ,那么得到的值就是该数的高八位。

    B站视频

    文章参考资料

    觉得有帮助可以投喂下博主哦~感谢!
    作者:Lincol
    本文链接:https://www.lincol29.cn/big-endian
    版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0协议转载请注明文章地址及作者哦~
    暂无评论

    发送评论 编辑评论

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    上一篇
    下一篇