精選百科
本文由作者推薦
字節(jié)
計(jì)算機(jī)存儲容量計(jì)量單位
字節(jié)(Byte)是計(jì)算機(jī)信息技術(shù)用于計(jì)量存儲容量的一種計(jì)量單位,也表示一些計(jì)算機(jī)編程語言中的數(shù)據(jù)類型和語言字符。作為一個(gè)單位來處理的一個(gè)二進(jìn)制數(shù)字串,是構(gòu)成信息的一個(gè)小單位。最常用的字節(jié)是八位的字節(jié),即它包含八位的二進(jìn)制數(shù)。
一個(gè)字節(jié)存儲8位無符號數(shù),儲存的數(shù)值范圍為0-255。如同字元一樣,字節(jié)型態(tài)的變數(shù)只需要用一個(gè)位元組(8位元)的內(nèi)存空間儲存。
基本信息
中文名 | 字節(jié) |
外文名 | Byte |
定義 | 計(jì)算機(jī)計(jì)量單位、編程語言字符,相當(dāng)于一個(gè)字符,8位=1字節(jié) |
二進(jìn)制數(shù) | binary number |
簡寫 | B |
展開
簡介
字節(jié)是二進(jìn)制數(shù)據(jù)的單位。一個(gè)字節(jié)通常8位長。但是,一些老型號計(jì)算機(jī)結(jié)構(gòu)使用不同的長度。為了避免混亂,在大多數(shù)國際文獻(xiàn)中,使用詞代替byte。在多數(shù)的計(jì)算機(jī)系統(tǒng)中,一個(gè)字節(jié)是一個(gè)8位長的數(shù)據(jù)單位,大多數(shù)的計(jì)算機(jī)用一個(gè)字節(jié)表示一個(gè)字符、數(shù)字或其他字符。一個(gè)字節(jié)也可以表示一系列二進(jìn)制位。在一些計(jì)算機(jī)系統(tǒng)中,4個(gè)字節(jié)代表一個(gè)字,這是計(jì)算機(jī)在執(zhí)行指令時(shí)能夠有效處理數(shù)據(jù)的單位。一些語言描述需要2個(gè)字節(jié)表示一個(gè)字符,這叫做雙字節(jié)字符集。一些處理器能夠處理雙字節(jié)或單字節(jié)指令。字節(jié)通常簡寫為“B”,而位通常簡寫為小寫“b”,計(jì)算機(jī)存儲器的大小通常用字節(jié)來表示。
換算
ASCII碼:一個(gè)英文字母(不分大小寫)占一個(gè)字節(jié)的空間。一個(gè)二進(jìn)制數(shù)字序列,在計(jì)算機(jī)中作為一個(gè)數(shù)字單元,一般為8位二進(jìn)制數(shù)。換算為十進(jìn)制,最小值-128,最大值127。如一個(gè)ASCII碼就是一個(gè)字節(jié)。
UTF-8編碼:一個(gè)英文字符等于一個(gè)字節(jié),一個(gè)中文(含繁體)等于三個(gè)字節(jié)。中文標(biāo)點(diǎn)占三個(gè)字節(jié),英文標(biāo)點(diǎn)占一個(gè)字節(jié)
Unicode編碼:一個(gè)英文等于兩個(gè)字節(jié),一個(gè)中文(含繁體)等于兩個(gè)字節(jié)。中文標(biāo)點(diǎn)占兩個(gè)字節(jié),英文標(biāo)點(diǎn)占兩個(gè)字節(jié)
不同數(shù)量級間
國際單位制(SI)
1KB=1024B;1MB=1024KB=1024×1024B。
1B(byte,字節(jié))=8bit(見下文);
1KB(Kilobyte,千字節(jié))=1024B=2^10B;
1BB(Brontobyte,一千億億億字節(jié))=1024YB=2^90B;
1NB(NonaByte,一百萬億億億字節(jié))=1024BB=2^100B;
國際電工委員會的電氣技術(shù)用字母符號標(biāo)準(zhǔn)IEC60027-2IEC80000-13
數(shù)據(jù)存儲是以10進(jìn)制表示,數(shù)據(jù)傳輸是以2進(jìn)制表示的,所以1KB不等于1000B。
1KB=1024B;1MB=1024KB=1024×1024B。其中1024=2。
1B(byte,字節(jié))=8bit(見下文);
1MiB(Mebibyte,兆字節(jié),百萬字節(jié),簡稱“兆”)=1024KB=2^20B;
1GiB(Gibibyte,吉字節(jié),十億字節(jié),又稱“千兆字節(jié)”)=1024MB=2^30B;
1TiB(Tebibyte,萬億字節(jié),太字節(jié))=1024GB=2^40B;
1PiB(Pebibyte,千萬億字節(jié),拍字節(jié))=1024TB=2^50B;
1EiB(Exbibyte,百億億字節(jié),艾字節(jié))=1024PB=2^60B;
1YiB(Yobibyte,一億億億字節(jié),堯字節(jié))=1024ZB=2^80B;
由于混淆已經(jīng)普遍化:
kilobyte往往可以指kibibyte
Megabyte往往可以指Mebibyte
Gigabyte往往可以是指Gibibyte
Terabyte往往可以指Tebibyte
Petabyte往往亦可以指Pebibyte
Exabyte往往亦可以指Exbibyte
Zettabyte往往亦可以指Zebibyte
Yottabyte往往亦可以指Yobibyte
存儲類型
以下以VisualBasic為例,講解各種數(shù)據(jù)類型所占字節(jié)。
數(shù)據(jù)類型 | 儲存空間大小(單位:字節(jié)) | 范圍 |
Byte(字節(jié)型) | 1 | 0-255 |
2 | True或False | |
Integer(整數(shù)型) | 2 | -32,768~32767 |
Long(長整形) | 4 | -2,147,483,648~2,147,483,647 |
Single | 4 | 負(fù)數(shù)范圍: -3.402823E38~-1.401298E-45 正數(shù)范圍: 1.401298E-45~3.402823E38 |
展開表格
任何數(shù)據(jù)類型的數(shù)組都需要20個(gè)字節(jié)的內(nèi)存空間,加上每一數(shù)組維數(shù)占4個(gè)字節(jié),再加上數(shù)據(jù)本身所占用的空間。數(shù)據(jù)所占用的內(nèi)存空間可以用數(shù)據(jù)元數(shù)目乘上每個(gè)元素的大小加以計(jì)算。例如,以4個(gè)2字節(jié)之Integer數(shù)據(jù)元所組成的一維數(shù)組中的數(shù)據(jù),占8個(gè)字節(jié)。這8個(gè)字節(jié)加上額外的24個(gè)字節(jié),使得這個(gè)數(shù)組所需總內(nèi)存空間為32個(gè)字節(jié)。
包含一數(shù)組的Variant比單獨(dú)的一個(gè)數(shù)組需要多12個(gè)字節(jié)。
相關(guān)單位
B與bit
數(shù)據(jù)存儲是以“字節(jié)”(Byte)為單位,數(shù)據(jù)傳輸大多是以“位”(bit,又名“比特”)為單位,一個(gè)位就代表一個(gè)0或1(即二進(jìn)制),每8個(gè)位(bit,簡寫為b)組成一個(gè)字節(jié)(Byte,簡寫為B),是最小一級的信息單位。
B與iB
1KiB(Kibibyte)=1024byte
1KB(Kilobyte)=1000byte
1MB(Megabyte)=1000000byte
硬盤生產(chǎn)商是以GB(十進(jìn)制,即10的3次方=1000,如1MB=1000KB)計(jì)算的,而電腦(操作系統(tǒng))是以GiB(2進(jìn)制,即2的10次方,如1MiB=1024KiB)計(jì)算的,但是國內(nèi)用戶一般理解為1MiB=1M=1024KB,所以為了便于中文化的理解,翻譯MiB為MB也是可以的。
同樣根據(jù)硬盤廠商與用戶對于1MB大小的不同理解,所以好多160G的硬盤實(shí)際容量按計(jì)算機(jī)實(shí)際的1MiB=1024KB算都不到160G,這也可以解釋為什么新買的硬盤“缺斤短兩”并沒有它所標(biāo)示的那么大。
數(shù)據(jù)類型
Byte數(shù)據(jù)類型(字節(jié)型)用一個(gè)字節(jié)(Byte)儲存,可區(qū)別256個(gè)數(shù)字,取值范圍:0到255。Byte是從0-255的無符號類型,所以不能表示負(fù)數(shù)。具體參照數(shù)據(jù)類型。
語言字符
效果等同于unsignedchar型
typedefunsignedcharBYTE
定義一種新類型BYTE,它其實(shí)就是unsignedchar
在VC++中,byte型數(shù)據(jù)的定義包含在windows.h頭文件中,調(diào)用byte需要添加代碼#include
而在java中,byte是一個(gè)關(guān)鍵字
取值范圍是-128~127
易混概念辨析
字
在計(jì)算機(jī)中,一串?dāng)?shù)碼作為一個(gè)整體來處理或運(yùn)算的,稱為一個(gè)計(jì)算機(jī)字,簡稱字。字通常分為若干個(gè)字節(jié)(每個(gè)字節(jié)一般是8位)。在存儲器中,通常每個(gè)單元存儲一個(gè)字,因此每個(gè)字都是可以尋址的。字的長度用位數(shù)來表示。
在計(jì)算機(jī)的運(yùn)算器、控制器中,通常都是以字為單位進(jìn)行傳送的。字出現(xiàn)在不同的地址其含義是不相同。例如,送往控制器去的字是指令,而送往運(yùn)算器去的字就是一個(gè)數(shù)。
字長
計(jì)算機(jī)的每個(gè)字所包含的位數(shù)稱為字長。根據(jù)計(jì)算機(jī)的不同,字長有固定的和可變的兩種。固定字長,即字長度不論什么情況都是固定不變的;可變字長,則在一定范圍內(nèi),其長度是可變的。
計(jì)算的字長是指它一次可處理的二進(jìn)制數(shù)字的數(shù)目。計(jì)算機(jī)處理數(shù)據(jù)的速率,自然和它一次能加工的位數(shù)以及進(jìn)行運(yùn)算的快慢有關(guān)。如果一臺計(jì)算機(jī)的字長是另一臺計(jì)算機(jī)的兩倍,即使兩臺計(jì)算機(jī)的速度相同,在相同的時(shí)間內(nèi),前者能做的工作是后者的兩倍。
一般地,大型計(jì)算機(jī)的字長為32-64位,小型計(jì)算機(jī)為12-32位,而微型計(jì)算機(jī)為4-16位。字長是衡量計(jì)算機(jī)性能的一個(gè)重要因素。
在微型計(jì)算機(jī)中,通常用多少字節(jié)來表示存儲器的存儲容量。
例如,在C++的數(shù)據(jù)類型表示中,通常char為1個(gè)字節(jié),int為4個(gè)字節(jié),double為8個(gè)字節(jié)。
理解編碼的關(guān)鍵,是要把字符的概念和字節(jié)的概念理解準(zhǔn)確。這兩個(gè)概念容易混淆,我們在此做一下區(qū)分:
概念描述舉例
字符人們使用的記號,抽象意義上的一個(gè)符號。'1','中','a','$','¥'……
字節(jié)計(jì)算機(jī)中存儲數(shù)據(jù)的單元,一個(gè)8位的二進(jìn)制數(shù),是一個(gè)很具體的存儲空間。0x01,0x45,0xFA……
字符串
在內(nèi)存中,如果“字符”是以ANSI編碼形式存在的,一個(gè)字符可能使用一個(gè)字節(jié)或多個(gè)字節(jié)來表示,那么我們稱這種字符串為ANSI字符串或者多字節(jié)字符串。如,"中文123"(占8字節(jié),包括一個(gè)隱藏的