必威电竞|足球世界杯竞猜平台

字節
來源:互聯網

計算機領域中,byte(字節)是計算機存儲和處理數據的基本單位之一,通常由8個二進制位組成(由00000000到11111111),組成字節的所有二進制位由計算機作為一個單元統一處理。每個二進制位只能表示0或1兩種狀態,因此一個字節可以表示256種不同的狀態組合。在計算機中,一個字節可以存儲一個英文字母、數字、標點符號等ASCII字符,也可以存儲一個8位二進制數、一個無符號整數,或者是一些控制字符。查看文件大小時,字節是操作系統列出的最小度量大小。

隨著計算機存儲和處理容量的增加,已經出現了更大的存儲單位,如KB(千字節)、MB(兆字節)、GB(吉字節)等。但是,字節仍然是計算機中最常用的數據單位之一,因為它既小巧又靈活,可以方便地存儲和處理各種數據。在計算機領域中,byte這個術語的含義已經得到廣泛的應用,并成為計算機科學中最基本的概念之一。

國際電工委員會(IEC)和電氣與電子工程師協會(IEEE)將字節的單位符號指定為大寫字母 B。 在國際上,八進制單位符號 o 明確定義了八位的序列,消除了"字節"一詞的潛在歧義。

發展歷史

名稱來源

這個詞最早是由德裔美國計算機科學家維爾納-布霍爾茨(Werner Buchholz)于 1956 年 6 月提出的。當時,布霍爾茨正在設計 IBM Stretch 計算機,他需要一個術語來描述機器處理的信息塊,于是提出了"字節"這一術語。早期的計算機使用四位和六位字節,包括美國陸軍和海軍使用的計算機。早期人們多使用5位二進制數作為基本單位,但它只能表示32種不同的含義,無法囊括所有大寫字母和小寫字母。緊接著,一些計算機用6位二進制數表示字符,它最多可以表示64個字符,這足以表示所有大寫字母、小寫字母和數字,但對于其他符號和空格來說還不夠。

路易斯-G.-杜利(Louis G.Dooley)聲稱,他與朱爾斯-施瓦茨(Jules Schwartz)和迪克-比勒(Dick Beeler)在麻省理工學院林肯實驗室合作開發了名為"SAGE"的防空系統時創造了"字節"(byte)的概念。這個術語指的是小于計算機字大小的比特組,尤其是四比特組。SAGE系統是由蘭德公司、麻省理工學院和IBM共同開發的。后來,施瓦茨的編程語言JOVIAL上采用了“字節”這個術語。

開發歷史

字節的概念引入

1732 年,Basile Bouchon等人發明了穿孔卡。它使用了離散位對數據進行編碼,并由Joseph Marie Jacquard開發,后來被IBM 等早期計算機制造商采用。它們通常有一系列規則的孔洞,可以用特定的設備(如孔打機)進行鉆孔,形成特定編碼以表示不同的數據。摩爾斯電碼(1844年)和早期的數字通信機器(如電傳打字機和股票行情機(1870年))也使用了按位對文本進行編碼。

1948年,Claude E.Shannon在他的論文《通信的數學理論》中首次使用了“位”一詞:“對數底數的選擇與測量信息單位的選擇相對應。如果使用以 為基數的單位,則生成的單位可以稱為二進制數字,或者更簡單地稱為位”。

1940 年代和 1950 年代開發的第一臺計算機使用二進制算術來執行計算和存儲數據。這些早期的計算機使用電子管來執行計算并以二進制形式存儲數據。這些計算機使用二進制算術來執行計算并以二進制形式存儲數據。二進制文件格式由一系列以特定模式排列的二進制數字(位)組成。每個位可以有兩個值之一:0 或 1。這些值用于表示兩種狀態或值。

1956 年,Werner Buchholz使用 IBM Stretch Super 計算機創造了“字節”一詞。他在《COMPANY CONFIDENTIAL》中提出:“串行操作的最大輸入輸出字節大小現在為 8 位,不包括任何錯誤檢測和糾正位。因此,Exchange 將以 8 位字節為基礎運行,任何每字節少于 8 位的輸入輸出單元都將剩余位留空。由此產生的間隙可以在以后通過編程進行編輯”。

字節的標準化

1963年,IBM System/360體系結構推出普及了8位字節。同時期IBM還參與了ASCII碼(7位128個字符)的制定、開展了EBCDIC表(8位256個字符)的制定,作為自己公司的BCDIC標準的一個升級版本。這個標準被稱為EBCDIC(Extended Binary-Coded Decimal Interchange Code)。EBCDIC是一種用于大型計算機和服務器的編碼系統,它能夠表示更多的字符集,包括數字、字母和其他特殊字符

20世紀60年代和70年代,隨著IBM推出了8位的字節作為標準,并在后來成為計算機行業的標準。在許多計算機科學家和工程師共同開發下,字節開始被廣泛應用于表示圖像、音頻和視頻等多媒體數據。例如:1959年,Tony Hoare發明了快速排序算法,該算法可以用于對圖像數據進行排序;1952年,David A.Huffman發明的霍夫曼編碼算法可以用于對圖像數據進行壓縮;而Robert M.Zbikowski發明的小波變換算法,可以用于對圖像數據進行去噪和增強等處理。

1981年,傳輸控制協議(TCP)是由IETF的RFC 793定義。TCP是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,由互聯網工程任務組(IETF)的RFC 793定義。TCP協議是在網絡OSI的七層模型中的第四層——傳輸層工作,它的主要作用是提供一個可靠的、端對端的數據傳輸服務。

字節的應用及擴展

1985年,英特爾公司推出了32位的386系列CPU,隨后又推出了64位的Itanium系列CPU。在21世紀初,AMD公司推出了64位的Opteron系列CPU,而蘋果公司也在Mac OS X 10.6 Snow Leopard中引入了64位的支持。

隨著計算機系統變得越來越先進,字節被用來指定各種計算機存儲格式的容量,包括光盤只讀存儲器(CD-ROM)、固態硬盤ssd)模塊、光盤、閃存、氦氣硬盤驅動器(HHDD)等。

基本定義

字節(byte)是計算機信息技術用于計量存儲容量的一種計量單位,也表示一些計算機編程語言中的數據類型和語言字符。byte是從0-255的無符號類型,所以不能表示負數

單位及換算

單位

B與bit

數據存儲是以“字節”(byte)為單位,數據傳輸大多是以“位”(bit,又名“比特”)為單位,一個位就代表一個0或1(即二進制),每8個位(bit,簡寫為b)組成一個字節(byte,簡寫為B),是最小一級的信息單位。

字(Word)

計算機中,一串數碼作為一個整體來處理或運算的,稱為一個計算機字,簡稱字。字通常分為若干個字節(每個字節一般是8位)。在存儲器中,通常每個單元存儲一個字。因此每個字都是可以尋址的。字的長度用位數來表示。

字長

計算機的每個字所包含的位數稱為字長,計算機的字長是指它一次可處理的二進制數字的數目。字長直接反映了計算機的計算精度,字長越長,計算機一次性處理的數字位數越多,處理數據的速度就越快,一般的大型計算機的字長為32-64位,小型計算機為12-32位,而微型計算機為4-16位。字長是衡量計算機性能的一個重要因素。

單位換算

字節文件

字節文件,通常指由一系列字節(byte)組成的二進制文件。字節是計算機中用于計量數據量的基本單位,一個字節等于8位。字節文件可以包含任何類型的數據,包括文本、圖像、音頻和視頻等。在Java中,有一種被稱為字節碼的特定類型的字節文件,這是一種中間碼,由一系列操作代碼/數據對組成,旨在由Java虛擬機(JVM)執行。字節文件在多種領域有廣泛應用,如Java虛擬機中的.class文件、Python解釋器中的.pyc文件、Lua解釋器中的.luac文件等。

編碼方式

字節的編碼方式主要指的是將字符轉換為字節表示的方法,以便在計算機中進行存儲和處理。有一些特定的編碼方式,如 EBCDIC(擴展二進制編碼十進制交換碼)等,多在早期的計算機系統和特定領域中使用。

ASCII 編碼

概述:ASCII(American Standard Code for Information Interchange)是最早的字符編碼標準,ASCII編碼使用單個字節(8位)來表示每個字符,但實際上只使用了低7位,因此總共可以表示128個不同的字符,包括英文字母、數字、標點符號和一些控制字符。

優勢:ASCII碼利用了計算機底層的二進制編碼系統,每個字符都分配了一個唯一的二進制編碼,使得計算機可以方便地識別和處理文本。ASCII 定義了 7 位字符集,這在很長一段時間內對于許多用途來說已經足夠了,并且也成為了大多數較新的字符集(ISO 646、ISO 8859、Unicode、ISO 10646 等)的基礎。且ASCII碼中,26個字母的代碼是連續的,大寫字母和小寫字母僅通過一位的差異即可相互轉換。通過擴展ASCII,可以表示更多的特殊符號、外來語字母和圖形符號。

缺陷:無法表示中文等非西歐語言。同時,ASCII只能顯示基本的拉丁字符,不能很好地支持其他語言字符集,如漢字、日語俄語等。為了解決這些問題,后來發展出了Unicode編碼。

應用場景:在處理文本數據時,可以使用ASCII編碼來表示每個字符、電子郵件通常使用ASCII編碼來傳輸文本消息、C、C++、Java等編程語言中的字符串常量和字符變量也是用ASCII碼表示。

Unicode 編碼

概述:Unicode中文又稱萬國碼、國際碼,是計算機科學領域的一項業界標準。它對世界上大部分的文字系統進行了整理和編碼,使得電腦可以用更為簡單的方式來呈現和處理文字。Unicode字符集的編碼范圍是0x0000 - 0x10FFFF,可以容納一百多萬個字符,每個字符都有一個二進制數值和它對應。例如,漢字“中”的碼點是0x4E2D,大寫字母A的碼點是0x41。

優勢:Unicode是國際標準字符集,對世界上大部分的文字系統進行了整理和編碼。Unicode字符集中的每個字符都有一個二進制數值(也稱為碼點)與之對應。

缺陷:比ASCII等其他編碼方式需要更多的存儲空間、由于Unicode需要對每個字符進行轉換和處理,因此在處理大量文本的速度比其他編碼方式慢。

應用場景:跨語言、跨平臺文本處理、Unicode編碼可以用于各種數據庫中,以支持多種語言的存儲和檢索。如MySQLOracle數據庫等數據庫、網絡傳輸中,Unicode編碼可以用于實現多語言之間的數據傳輸和交換。如XML,,Java,LDAP, CORBA 3.0, WML等、編程語言處理。

ISO-8859 系列編碼

概述:ISO-8859系列是由國際標準化組織(ISO)及國際電工委員會(IEC)聯合制定的一系列8位字符集的標準。其中,ISO-8859-1編碼是單字節編碼,向下兼容ASCII,其編碼范圍是0x00-0xFF。在0x00-0x7F之間編碼與ASCII完全一致;而在0x80-0x9F之間主要是控制字符;0xA0-0xFF之間的編碼則是文字符號。此字符集主要支持部分于歐洲使用的語言。

優勢:ISO-8859系列編碼的優勢主要體現在其兼容性和表示特定字符集的能力。該系列編碼與ASCII編碼兼容,這意味著所有低位都未使用。此外,ISO-8859系列編碼可以表示127到255范圍內的各種字母表。其中的ISO-8859-1編碼獨特的編碼順序為支持歐洲等地的語言提供了便利。

缺陷:ISO-8859系列編碼的缺陷主要體現在其字符集范圍有限,無法表示所有語言的字符。它只能容納128個以下的符號組成的語言,或者一次不能顯示一個以上的符號系列。例如,中文漢字就無法用ISO-8859系列編碼完全表示,如果將UTF-8或者GBK編碼格式的中文字符轉成"iso-8859-1"編碼格式,會變成亂碼。隨著UTF的興起,ISO-8859編碼已不再被廣泛使用。

應用場景:在網絡傳輸中,如果接收方的字符集與發送方不同,那么可以使用ISO-8859系列編碼進行轉換、一些老舊的網頁或者部分http響應信息中的header部分,默認是"iso-8859-1"的編碼、需要處理的數據包含部分歐洲語言可以使用到這種編碼。

字節交換

字節交換(byte swapping)是指將多字節數據類型(如整數、浮點數)的字節順序進行調換的操作。在計算機系統中,存在著不同的字節序,常見的有大端字節序(Big-endian)和小端字節序(Little-endian)兩種。大端字節序是指將高位字節存儲在低地址,低位字節存儲在高地址的方式。而小端字節序則是將低位字節存儲在低地址,高位字節存儲在高地址的方式。

字節交換通常涉及到多字節數據的轉換,其目的是在不同字節序之間進行轉換或者確保多字節數據在特定字節序的系統上得到正確解釋。例如,在網絡通信中,為了確保不同系統之間的數據正確傳輸,需要進行字節交換。

字節與位的區別

兩者都是計算機內存單元的類型,但它們代表不同的大小和測量計算機數據的方法。這兩個單元之間的最大區別是尺寸。位是計算機內存的最小單位,而字節由幾個位組成。

應用領域

參考資料 >

What is a byte?.Techtarget.2023-10-29

WernerBuchholz.IEEE.2023-10-29

Metric Interchange Format.Jaffer, Aubrey .2023-10-11

Binary Information and Representation: Bits, Bytes, Nibbles, Octets and Characters.The TCP/IP Guide.2023-10-11

Byte.Webopedia.2023-10-11

Orgin of the term "byte", 1956.FoRK-archive.2023-10-11

Byte: The Word.Dooley, Louis G. (February 1995).2023-10-11

Basile Bouchon — 傳記、歷史和發明.HC.2023-10-29

摩爾斯電碼與電訊報.History.2023-10-29

A Mathematical Theory of Communication.bell-labs.2023-10-29

What is a binary file?.Date Conomy.2023-10-29

COMPANY CONFIDENTIAL.ComputerHistory.2023-10-11

IBM Documentation.IBM.2023-10-29

IBM System/360.ETHW.2023-10-29

Quicksort.Cs Stanford.2023-10-29

霍夫曼密碼的發現.MAA.2023-10-29

https://ieeexplore.ieee.org/abstract/document/157290.IEEE.2023-10-29

傳輸控制協議 (TCP).khan academy.2023-10-29

386: 32-Bit and Cache Memory.Tomshardware.2023-10-29

AMD推出首款64位ARM服務器芯片系列“Seattle”.PCMag.2023-10-29

通往 Mac OS X 10.6 Snow Leopard 之路:64 位.AI.2023-10-29

Bits and Bytes.斯坦福.2023-11-01

Computer Concepts : Bits, Bytes and Words.codesteps.2023-11-01

Computing Resources.ITN.2023-11-01

計算機科學照明.archive.2023-11-01

ASCII printable characters (character code 32-127).ASCLL.2023-10-31

unicode首頁.unicode.2023-10-31

HTML ISO-8859-1 參考.w3schools..2023-10-31

字符集:ISO-8859-1(西歐).charset.2023-10-31

2.1.1 ISO-8859-1.Microsoft.2023-10-31

國際標準化組織 8859-1.Academic Kids.2023-11-01

生活家百科家居網