bit、Byte、Octet的区别

发布时间 2023-08-25 22:38:44作者: Sawyerhan

bit

比特(英语:bit,亦称二进制位)指二进制中的一位,是信息的最小单位。bit是binary digit(二进制数位)的混成词,由数学家John Wilder Tukey提出可能是1946年提出,但有资料称1943年就提出了)。这个术语第一次被正式使用,是在香农著名的论文《通信的数学理论》(A Mathematical Theory of Communication)第1页中。

假设一事件以A或B的方式发生,且A、B发生的概率相等,都为0.5,则一个二进位可用来代表A或B之一。例如:

  • 二进位可以用来表示一个简单的正负
  • 有两种状态的开关(如电灯开关)
  • 晶体管的通断
  • 某根导线上电压的有无
  • 一个抽像的逻辑上的是否

除二进位外,在电脑上常用的还有八进制、十进制和十六进制等进制的八进位、十进位和十六进位等。1字节由8比特组成。在中文语境中各地称谓有所不同。

按照热力学与信息论的关系,信息量和热力学熵可以换算。

1bit相当于:

这个换算关系有很深刻的物理含义:向一个存储器存入一比特的信息会使其热力学熵降低

根据热力学第二定律,环境的熵至少要增加这么多,即在TK下操作一比特,至少向环境排放

的废热。这是信息操作带来的熵变的理论下限,实际当今最先进的电子计算机操作一个比特带来的熵变是该下限的数十亿倍。

Byte

字节(英语:byte),通常用作电脑手机手表等 信息计量单位,不分数据类型。是通信和数据存储的概念。一个字节代表八个比特。从历史的观点上,“字节”表示用于编码单个字符所需要的比特数量。历史上字节长度曾基于硬件为1-48 bit不等,最初通常使用6 bit或9 bit为一字节。今日标准以8 bit作为一字节,因8为二进制整数。八个比特在一些规范(例如工业标准、计算机网络、电信技术等)中常被称为八位组。字节(byte)可缩写成B,例如MB表示megabyte;比特(bit)可缩写成b,例如Mb表示megabit

Octet

八比特组。在电脑领域里,一个octet是指八个比特(bit)为一组的单位,中文称作八比特组。

法国和罗马尼亚, octet 这个字通常是指一个字节(byte)的意思;当我们称一兆字节(megabyte,MB),在这些地区会称作 megaoctet bitbyte 在法语里是异义同音字。

Octet 除了下面提到的唯一例外之外,都是指一个具有八个比特的实体。因此在电脑网络标准中,在byte容易引起混淆的地方都仅使用Octet

标准

Octets 有两种不同的前缀,一种为 2 的多次方,另一种是国际单位制(SI,International System of Units)。2 的多次方的格式为国际电工委员会(International Electrotechnical Commission)在 1998 年所制定。

  • kibi 指 « kilo binary » ;
  • mebi 指 « mega binary » ;
  • gibi 指 « giga binary » ;
  • tebi 指 « tera binary » ;
1 kibioctet (Kio) = 210 octets = 1,024 octets
1 mebioctet (Mio) = 220 octets = 1,024 Kio = 1,048,576 octets
1 gibioctet (Gio) = 230 octets = 1,024 Mio = 1,073,741,824 octets
1 tébioctet (Tio) = 240 octets = 1,024 Gio = 1,099,511,627,776 octets
1 pebioctet (Pio) = 250 octets = 1,024 Tio = 1,125,899,906,842,624 octets
1 exbioctet (Eio) = 260 octets = 1,024 Pio = 1,152,921,504,606,847,000 octets
1 zebioctet (Zio) = 270 octets = 1,024 Eio = 1,180,591,620,717,411,300,000 octets
1 yobioctet (Yio) = 280 octets = 1,024 Zio = 1,208,925,819,614,629,200,000,000 octets

SI的前缀为 kilo、mega、giga、tera等,与所有的 SI 单位的表现法相同,都是基于 10 的次方:

1 kilooctet (Ko) = 103 octets = 1,000 octets
1 megaoctet (Mo) = 106 octets = 1,000 ko = 1,000,000 octets
1 gigaoctet (Go) = 109 octets = 1,000 Mo = 1,000,000,000 octets
1 teraoctet (To) = 1012 octets = 1,000 Go = 1,000,000,000,000 octets
1 petaoctet (Po) = 1015 octets = 1,000 To = 1,000,000,000,000,000 octets