Endian一词是什么意思:推算机中的字节序诠释

Endian一词是什么意思:推算机中的字节序诠释
2026-10-05 07:37:09 华声在线 作者 国务院任免国度工作人员:录用王海腾为国度矿山安全监察局副局长 礼来股价逆势上涨2% 续刷纪录新高 罗伯特·吴 新浪网官方账号

Endian 是推算机领域中暗示“字节分列挨次”的术语,,,,,,,,中文通常译为端序或字节序。。。。 。。。当一个数据由多个字节组成时,,,,,,,,Endian 用来注明这些字节在内存、文件或网络数据中的先后地位。。。。 。。。最常见的两种大局是 Big Endian(大端序)和 Little Endian(幼端序)。。。。 。。。

单一来说,,,,,,,,Endian 不是在注明一个数“是几多”,,,,,,,,而是在注明这个数的分歧字节“怎么排”。。。。 。。。统一个整数在大端和幼端中代表的数值能够齐全一样,,,,,,,,只是它在内存或数据流中的分列方式分歧。。。。 。。。因而,,,,,,,,看到 endian 这个词时,,,,,,,,通常要持续确认它指的是 big endian 还是 little endian。。。。 。。。

Endian到底是什么意思?? ?????

推算机通常以字节为单元处置数据,,,,,,,,一个字节蕴含 8 个二进造位。。。。 。。。像字符这样的数据可能只占一个字节,,,,,,,,但整数、浮点数、功夫戳和内存地址等数据,,,,,,,,往往由 2 个、4 个或更多字节组成。。。。 。。。

例如,,,,,,,,十六进造数 0x12345678 由四个字节组成:

  • 0x12:最高有效字节
  • 0x34:次高有效字节
  • 0x56:次低有效字节
  • 0x78:最低有效字节

Endian 关注的就是这四个字节在陆续存储空间中的分列挨次。。。。 。。。这里的“高”与“低”指的是数值权沉,,,,,,,,不是内存地址凹凸,,,,,,,,也不是字节在屏幕上的高低地位。。。。 。。。

为什么统一个数会有大端和幼端两种分列方式?? ?????

由于多字节数据必要被拆分后放入陆续的字节地位,,,,,,,,而分歧处置器、操作系统或数据体式能够选取分歧的约定。。。。 。。。如果内存地址从低到高顺次增长,,,,,,,,数值 0x12345678 的分列能够暗示为:

统一个数在两种端序中的字节分列
端序 低地址到高地址的字节挨次 分列特点
大端序 Big Endian 12 34 56 78 最高有效字节放在低地址
幼端序 Little Endian 78 56 34 12 最低有效字节放在低地址

大端序的分列方式与人们书写十六进造数字的挨次更靠近:先看到最高位,,,,,,,,再看到最低位。。。。 。。。幼端序则把最低有效字节放在最前面。。。。 。。。无论选取哪种分列,,,,,,,,沉新依照对应规定读取后,,,,,,,,得到的数值依然是 0x12345678。。。。 。。。

“Big Endian”和“Little Endian」剽两个名称,,,,,,,,通常被以为与文学文章中关于“大端剥蛋”与“幼端剥蛋”的争论有关。。。。 。。。后来,,,,,,,,这组说法被推算机领域借来描述数据分列挨次。。。。 。。。这里的“端”不是数据的一端被截断,,,,,,,,而是指一个多字节数据从哪一端起头分列。。。。 。。。

Endian和字节序、位序是一回事吗?? ?????

在大无数技术文档中,,,,,,,,Endian 重要会商的是字节序,,,,,,,,也就是多个字节之间的挨次。。。。 。。。因而,,,,,,,,“Endian”“端序”和“字节序”时时被当作近似同义词使用。。。。 。。。不外,,,,,,,,Endian 不应直接等同于位序。。。。 。。。

字节序关注字节之间的挨次

以 0x1234 为例,,,,,,,,它由 0x12 和 0x34 两个字节组成。。。。 。。。大端序通常写为 12 34,,,,,,,,幼端序通常写为 34 12。。。。 。。。这里变动的是两个字节的排各地位。。。。 。。。

位序关注一个字节内部的位若何诠释

一个字节 0x12 内部还蕴含 8 个二进造位。。。。 。。。会商这些位在寄放器、总线或通讯和谈中的传输挨次时,,,,,,,,涉及的是位序、位编号方式或比特传输挨次。。。。 。。。它与大端、幼端的字节分列不是统一个问题。。。。 。。。

因而,,,,,,,,看到某个资料说“选取幼端”,,,,,,,,通常只能先理解为“多字节数据按幼端字节序排劣妆,,,,,,,,不能据此揣度每个字节内部的比特肯定依照某种物理方向传输。。。。 。。。

什么时辰必须分辨 Endian?? ?????

若是数据只在统一法式、统一运行环境中使用,,,,,,,,法式通;;;;;嵋勒盏鼻捌教ǖ墓娑ㄊ迪侄列,,,,,,,,开发者不定必要直接观察每个字节。。。。 。。。但在以下情况下,,,,,,,,Endian 就会成为必须明确的概想:

  • 读取二进造文件:文件体式可能划定整数、长度字段或偏移量选取大端或幼端。。。。 。。。若是读取法式使用了相反规定,,,,,,,,数值就会被解析谬误。。。。 。。。
  • 网络通讯:很多互联网和谈中的整数选取约定好的网络字节序,,,,,,,,常见网络字节序为大端序。。。。 。。。发送端和接管端必要遵循和谈划定,,,,,,,,而不能只按本机习惯处置。。。。 。。。
  • 跨平台互换数据:分歧处置器或系统可能使用分歧的默认端序,,,,,,,,数据体式若是没有明确划定端序,,,,,,,,就容易出现兼容问题。。。。 。。。
  • 挪用表部接口:法式与设备、操作系统接口或其他说话互换二进造结构体时,,,,,,,,字段的字节排劣注长度和对齐方式都可能影响了局。。。。 。。。
  • 查看内存和调试数据:调试器展示的字节序列与源代码中的整数写法可能分歧,,,,,,,,理解端序有助于判断内存中的原始内容。。。。 。。。

判断时能够先问两个问题:第一,,,,,,,,数据是否由多个字节组成;;;;;第二,,,,,,,,数据是否必要在分歧法式、平台或设备之间互换。。。。 。。。若是只是处置单个字节,,,,,,,,例如一个 0 到 255 的数值,,,,,,,,通常不存在大端或幼端的区别;;;;;若是是 16 位、32 位或 64 位数据,,,,,,,,就必要确认分列规定。。。。 。。。

Endian和“数字写法”为什么看起来不一样?? ?????

人们书写 0x12345678 时,,,,,,,,通常从左到右依照最高位到最低位分列。。。。 。。。这是数字的暗示法。。。。 。。。内存则是按地址保留一个个字节,,,,,,,,地址从低到高分列时,,,,,,,,具体先放哪个字节由端序决定。。。。 。。。

因而,,,,,,,,法式员在源代码中看到的数字挨次,,,,,,,,并不愿定蹬宗内存查看工具显示的字节挨次。。。。 。。。好比幼端机械上,,,,,,,,变量的值依然能够写作 0x12345678,,,,,,,,但从低地址起头查看原始内存时,,,,,,,,可能顺次看到 78、56、34、12。。。。 。。。两者并不矛盾:前者是在表白数值,,,,,,,,后者是在展示存储布局。。。。 。。。

同样,,,,,,,,文本内容也不能单一按“字符串是大端还是幼端”来理解。。。。 。。。通常单字节字符通常不存在这种字节分列问题;;;;;某些多字节字符编码或编码文件体式可能划定端序,,,,,,,,这时要依照具体编码和文件规范判断,,,,,,,,而不能仅凭“文字由多个字节组成”就直接套用大幼端结论。。。。 。。。

看到 Endian 时应该若何理解?? ?????

能够把它概括为一句话:Endian 描述的是多字节数据中,,,,,,,,各个字节依照什么挨次存放或传输。。。。 。。。若是资料写的是 Big Endian,,,,,,,,通常暗示最高有效字节在前;;;;;若是写的是 Little Endian,,,,,,,,通常暗示最低有效字节在前。。。。 。。。

现实阅读文档时,,,,,,,,还应结合数据的天堑和规定一路看:字段占几个字节、低地址若何界说、和谈是否指定网络字节序、文件头是否蕴含端序象征,,,,,,,,以及读取方是否必要进行字节互换。。。。 。。。只有在这些前提明确后,,,,,,,,能力正确判断一串十六进造字节代表什么数值。。。。 。。。

出格申明:以上文章内容仅代表作者自己概想,,,,,,,,不代表新浪网概想或态度。。。。 。。。如有关于文章内容、版权或其它问题请于文章颁发后的30日内与新浪网联系。。。。 。。。
来自于:新浪网官方
网友评论
首批特斯拉在印度开启交付 全数来自上海超等工厂
兴业银行沉庆分行被罚:一项违法违规行为比力罕见!
分享到微博
颁布
最热评论
最新评论
暂无评论

举报邮箱:[email protected]

Copyright ? 1996-2026 SINA Corporation

All Rights Reserved 新浪公司 版权所有