什么是字节序? Big-Endian vs Little-Endian 举例说明

article/2025/9/8 15:21:37

What is endianness

计算机只理解二进制。这意味着 0 和 1 构成了计算机使用的语言。

一位是 0 或 1 。8 位组成一个字节。从这些简单的部分,我们可以构建极其复杂的连接计算机系统来渲染视频、显示来自世界各地的文本并计算极其复杂的算法。

一些数据(一些英文字符,如 a、e、i、o 和 u)可以用一个字节表示,但有些数据需要多个字节来表示。

但是字节顺序是计算机如何读取和理解字节的基本部分。

什么是字节序?

不同的语言以不同的顺序阅读他们的文本。例如,英语从左到右阅读,而阿拉伯语从右到左阅读。

这正是计算机的字节序。

如果我的计算机从左到右读取字节,而您的计算机从右到左读取,那么当我们需要通信时就会出现问题。

字节序意味着计算机内存中的字节按一定顺序读取。

如果我们永远不需要共享信息,我们就不会有任何问题。每台计算机对于它们自己的数据都是内部一致的。只是互联网使我们能够共享比以往更多的数据,而且我们的数据并不总是以相同的顺序读取。

Endianness以两种方式表示Big-endian ( BE ) 和Little-endian ( LE )。

  • BE先存储大端。当读取多个字节时,第一个字节(或最低的内存地址)是最大的 - 所以对于从左到右阅读的人来说最有意义。
  • LE首先存储小端。当读取多个字节时,第一个字节(或最低的内存地址)是最小的 - 所以对于从右到左阅读的人来说最有意义。

如果上述内容没有意义,那没关系,让我们看一个例子。

字节顺序如何工作的示例

让我们取一个我们必须使用多个字节来表示的数字,并展示 它可以表示的大端和小端方式。

我们将采用一个需要三个字节才能以二进制表示的数字。

这可能稍微简化了它,但我希望它可以作为一个有用的视觉解释。

binary example

一个二进制示例,其中 big-endian 和 little-endian 数字按读取顺序排列。

开头的 0b 只是为了让读者知道它是二进制的。所以我们知道二进制 1100 和十进制数 1,100 之间的区别(一千,一百)。我还使用了颜色希望使它更清晰。

我只是想明确一点,位排序很好。位的顺序没有区别。但是字节的正确顺序是有区别的。我希望以上演示了一个字节内 0 和 1 的顺序不要改变。但是字节顺序确实发生了变化。

如果我们也只需要发送一个字节,就没有问题(没有多种方法可以只订购一件东西)。这只是一个多于一个字节的序列的问题。

最高有效字节 (MSbyte)

术语最高有效字节是描述字节顺序的常用方法,因此我想确保彻底涵盖它。

在我们开始解释bits和bytes之前, 让我们用十进制数来做。

如果我取十进制数 2,984,你可以改变什么数字来改变最小的数量?答案是个位数 4. 如果我把 4 改成 5,整数只会增加 1。

但是,假设您将最高位 2 更改在 2,984 中。它将显着改变数字并增加一千。

这与bytes和bits完全相同。

我们将保持最小位置的字节称为最低有效字节( LSbyte ),将保持最小位置的位称为最低有效位( LSbit )。

ms byte

一个图表来说明包含最低位置编号的字节是最低有效字节。

保存最高有效位的字节称为最高有效字节( MSbyte ),保存最高有效位位置的位称为最高有效位( MSbit )。

现在知道了这个新定义,我们可以将BE和LE定义为:

  • Big endian先存储数据MSbyte
  • Little endian最后存储数据MSbyte

这什么时候会成为问题?

在一些不同的情况下,字节序必须是计算中的一个考虑因素。

例如,Unicode 字符(用于在您的手机、PC、电视等任何地方呈现字符的字符集!)必须传递一个特殊的字符字节序列 (U+FEFF BYTE ORDER MARK),称为Byte Order Mark或BOM。BOM有几个用途。

BOM使系统知道:

  • 传入的流是 Unicode。
  • 其中使用了 Unicode 字符编码。
  • 传入流的字节序。

一些编程语言甚至希望您详细说明正在使用的字节顺序。因此,一个程序可以根据您的需要使用、发送和接收BE或LE中的数字。

为什么这首先是一个问题 ?

碰巧出现了不同的协议,然后不得不相互交互。BE是任何网络协议中的主导顺序,例如称为网络顺序。 另一方面,大多数 PC 都是little-endian的。

您可以在此处在线运行 C++ 代码片段,以查看您的机器是什么字节序(我的是little-endian)。

字节序在很大程度上不再对高级语言产生影响,并且抽象出我们不需要担心的特定实现细节。

它的另一部分是处理器决定它们是小端还是大端(或者可以同时处理两者 - 称为Bi-endian),因此消费者选择驱动了我们认为计算机系统中“正常”的部分内容。

结论

我希望这篇文章已经解释了字节序是什么,什么是大字节序和小字节序,并且你现在更清楚地理解了这些概念。


http://chatgpt.dhexx.cn/article/mVtmQM5S.shtml

相关文章

java -- Big Endian and Little Endian 大端和小端概念讲解及如何转换

什么是大端、小端? 字节是计算机中数据处理的基本单位。 计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte8bit)。 计算机进行数据处理时,一次存取、加工和…

浅谈大小端(Endian)与位域

目录 字节序 位序 常见位序的错误理解 以太网的大小端 以太网的字节序 以太网的位序 位域中的大小端 位域遇上大小端以太网通信 大端CPU发送 小端CPU发送 位域大小端问题的解决措施 大小端问题浪费了太多应用、驱动、逻辑工程师太多的时间,无时无刻都有人…

Endian

字节序(Endian)即字节顺序(Byte-Order),又称为端序或尾序(Endianness)。描述的是计算机如何组织字节组成对应的数字,是多字节数据存储和传输时字节的顺序, 是多字节数据在…

一个神奇的网站 Papers with code

这个网站会把某个方向的 论文和代码总结出来。 有助于提高个人效率。 https://paperswithcode.com/sota

这是一个神奇的网站

2012年1月9日,下午2点,打开www.12306.cn.硬是提交了100多次才进入这个神奇的网站。结果又提交了100多次订单才成功了,很不幸运的是尼玛硬座的,等等是无号的...

【工具】sci-hub:一个神奇的免费下载文献的网站

title: “【工具】sci-hub:一个神奇的免费下载文献的网站” date: 2019-09-20T10:44:5508:00 lastmod: 2019-09-20T10:44:5508:00 tags: [“工具”,“sci-hub”] categories: [“工具”] sci-hub:一个神奇的免费下载文献的网站(使用技巧&…

最近发现的几个神奇CS学习网站

最近发现的几个CS学习网站,真的灰常良心,希望自己以后少吃瓜,多看看别人的路线和学习笔记。 一、北大信科大佬的CS笔记 https://csdiy.wiki/#_8 自己也是打算学习各种国外的优质课程(最近在学CS224n课程和做对应的project&…

冷门但超级有用的神奇网站推荐

给大家介绍一些神奇的具有强大功能的网站,有些功能特别的有用 查询名下手机号 https://getsimnum.caict.ac.cn 查询内容将以短信的形式下发到手机,一个人一天只能查询一次,因为是工信部出品的,所以安全性十分有保障 查询手机号…

快速下载一个网站

有时候我们需要分析一个网站,或者基于一个网站进行魔改,这个就需要一些特殊的手段将网站源码下载到本地了,其实目前大部分网站都是有代码压缩的,很难去有修改。 这里我就教大家如何快速获取一个网站的所有资源,包括源码…

给理工男女的一个神奇网站!

2018 AI开发者大会是一场由中美人工智能技术高手联袂打造的AI技术与产业的年度盛会!这里有15硅谷实力讲师团、80AI领军企业技术核心人物、100技术&大众实力媒体、1500AI专业开发者——我们只讲技术,拒绝空谈! 参加 2018 AI开发者大会&…

推荐一个命名变量的神奇网站 CODELF

推荐一个命名变量的神奇网站 CODELF 在我们写程序的时候,总是需要去给各种变量命名。于是各种命名大法都上来了,有拼音的,有首字母缩写的,各种各样。而我们推荐的命名肯定是英文的驼峰命名。今天给大家推荐一个网站:h…

mc神奇宝贝服务器网站,我的世界1.12.2 master 神奇宝贝服务器

———— 服务器名称:master—神奇宝贝 ———— 服务器版本:1.12.2 ———— 服务器类型:神奇宝贝 ———— 服务器的IP:进群下载客户端 ———— 服务器QQ群:609019804 ———— 服务器特色 游戏模式:休闲…

Craigslist :一个神奇的网站

转载:https://blog.naaln.com/2017/05/a-magic-website-raigslist/ 今天在看书的时候看到一个问题,什么是一个好产品?是好用的,还是好看的? 显而易见,应该是一个好用的产品。有什么产品是特别好看&#xff…

codewars 一个很神奇的网站

今天闲着无聊,逛推酷,无意间发现了一篇很有意思的帖子,帖子里写了国外的一个很有意思的网站,叫codewars ,这个网站的宗旨是把写代码 当成像打怪升级一样。上面有很多的题目,你可以用你熟悉的语言答题&…

p站,一个神奇的网站

说起p站,不少人老司机肯定想到的是那一个p站,但今天我要说的是另一个----pixiv,一个插画网站。 不知道什么原因,网站在国内被墙了,想弄个随机图片还得翻墙,但由于服务器网速实在太慢了,只能网上…

记录一个神奇的网站

Aurorahttps://arr003.network/

给理工男女的一个神奇网站

十一长假已经只剩下最后两天,你给自己定下的假期学习计划进展如何? 你是在家,还是在想家,还是在其他国家? 为了让家里蹲的诸位不虚度光阴,也为了让那些堵在高速路上的童鞋打发时间,现隆重给大家…

五个私藏已久的神奇网站,你想要的全都有

1⃣️悦音配音 一款非常实用的创作工具,做各种风格的配音,提取你想要的视频文案或音频文案,导入图片,一键生成三联封面,无水印视频下。 2⃣️万有导航 聚合资源网站,一个庞大的资源整合神仙网站&#xff…

8个好玩又实用的神奇网站,帮你打开新世界大门!

有小伙伴问:有没有即轻松好玩,又可以学到各种奇怪知识的网站? 下面向你安利8个网站,快来看看吧! Wikihow zh.wikihow.com 这是一个百科全书式的网站,内容是为我们生活中会遇到的各种问题提供了解决方案…

9个宝藏级的神奇网站!个个精品,让你人生开挂,效率翻倍

分享9个让你先是眼前一亮,继而觉得好用的神奇网站,每个都是效率神器! 01 . designtools 一个超级神奇的网站,我把它叫做设计师必备网站! 里面包含了11个超强的设计工具,每一个都很惊艳,举个…