位元組 - 基礎知識

來源:互聯網
上載者:User

標籤:

位元組(Byte /bait/ n. [C])是電腦資訊技術用於計量儲存容量的一種計量單位,也表示一些電腦程式設計語言中的資料類型和語言字元。
中文名
位元組
外文名
Byte
簡    寫
B
相關概念
iB;位(b,bit)
 目錄
  1. 1 換算
  2. ? 字元與位元組
  3. ? 不同數量級間
  4. ? 儲存類型
  5. 2 相關單位
  6. ? B與bit
  1. ? B與iB
  2. 3 資料類型
  3. 4 語言字元
  4. 5 易混概念辨析
  5. ? 字
  1. ? 字長
  2. ? 位元組
  3. ? 字串
  4. ? 字元集
  5. ? Unicode
換算字元與位元組ASCII碼:一個英文字母(不分大小寫)佔一個位元組的空間,一個中文漢字佔兩個位元組的空間。一個位元字序列,在電腦中作為一個數字單元,一般為8位位元,換算為十進位。最小值0,最大值255。如一個ASCII碼就是一個位元組。UTF-8編碼:一個英文字元等於一個位元組,一個中文(含繁體)等於三個位元組。Unicode編碼:一個英文等於兩個位元組,一個中文(含繁體)等於兩個位元組。符號:英文標點佔一個位元組,中文標點佔兩個位元組。舉例:英文句號“.”佔1個位元組的大小,中文句號“。”佔2個位元組的大小。不同數量級間資料存放區是以10進位表示,資料轉送是以2進位表示的,所以1KB不等於1000B。1KB=1024B;1MB=1024KB=1024×1024B。其中1024=210。1B(byte,位元組)= 8 bit(見下文);1KB(Kibibyte,KB)=1024B= 2^10 B;1MB(Mebibyte,MB,百萬位元組,簡稱“兆”)=1024KB= 2^20 B;1GB(Gigabyte,吉位元組,十億位元組,又稱“千兆”)=1024MB= 2^30 B;1TB(Terabyte,萬億位元組,太位元組)=1024GB= 2^40 B;1PB(Petabyte,千萬億位元組,拍位元組)=1024TB= 2^50 B;1EB(Exabyte,Exabyte,艾位元組)=1024PB= 2^60 B;1ZB(Zettabyte,十萬億億位元組,澤位元組)= 1024EB= 2^70 B;1YB(Yottabyte,一億億億位元組,堯位元組)= 1024ZB= 2^80 B;1BB(Brontobyte,一千億億億位元組)= 1024YB= 2^90 B;1NB(NonaByte,一百萬億億億位元組) = 1024 BB = 2^100 B;1DB(DoggaByte,十億億億億位元組) = 1024 NB = 2^110 B;[1] 儲存類型以下以Visual Basic為例,講解各種資料類型所佔位元組。
資料類型  儲存空間大小(單位:位元組) 範圍
Byte(位元組型) 1 0 - 255
Boolean(布爾型/邏輯型) 2 True 或 False
Integer(整數型) 2 -32,768 ~ 32767
Long(長整形) 4 -2,147,483,648 ~ 2,147,483,647
Single(單精確度浮點型) 4 負數範圍:-3.402823E38 ~ -1.401298E-45正數範圍:1.401298E-45 ~ 3.402823E38
Double(雙精確度浮點型) 8 負數範圍:-1.797,693,134,862,32E308 ~-4.940,656,458,412,47E-324正數範圍:4.940,656,458,412,47E-324 ~1.797,693,134,862,32E308
Currency(變比整形 / 貨幣類型) 8 -922,337,203,685,477.5808 ~922,337,203,685,477.5807
Decimal(十進位型) 14 沒有小數點時:+/-79,228,162,514,264,337,593,543,950,335有小數點時:+/-7.922,816,251,426,433,759,354,395,033,5最小的非零值:+/-0.000,000,000,000,000,000,000,000,000,1
Date(時間日期型) 8 100 年 1 月 1 日 ~ 9999 年 12 月 31 日
Object(對象型) 4 任何 Object 引用
String (變長) 10 長度從 0 到 大約 20 億
String (定長) 10 長度從 1 到大約 65,400
Variant (數字) 16 任何數字值,最大可達 Double 的範圍
Variant (字元) 22 與字串長度,變長 String 有相同的範圍
使用者自訂變數 - -
  
任何資料類型的數組都需要 20 個位元組的記憶體空間,加上每一數組維數占 4 個位元組,再加上資料本身所佔用的空間。資料所佔用的記憶體空間可以用資料元數目乘上每個元素的大小加以計算。例如,以 4 個 2位元組之 Integer 資料元所組成的一維數組中的資料,占 8 個位元組。這 8 個位元組加上額外的 24 個位元組,使得這個數組所需總記憶體空間為 32 個位元組。包含一數組的 Variant 比單獨的一個數組需要多 12 個位元組。[2] 相關單位B與bit資料存放區是以“位元組”(Byte)為單位,資料轉送是以大多是以“位”(bit,又名“位元”)為單位,一個位就代表一個0或1(即二進位),每8個位(bit,簡寫為b)組成一個位元組(Byte,簡寫為B),是最小一級的資訊單位。B與iB1KB(Kibibyte)=1024byte1KiB(Kilobyte)=1000byte1MB(Mebibyte)=1048576byte1MiB(Megabyte)=1000000byte硬碟生產商是以GiB(十進位,即10的3次方=1000,如1MiB=1000KB)計算的,而電腦(作業系統)是以GB(2進位,即2的10次方, 如1MB=1024KB)計算的,但是國內使用者一般理解為1MiB=1M=1024 KB, 所以為了便於中文化的理解,翻譯MiB為MB也是可以的。同樣根據硬碟廠商與使用者對於1MB大小的不同理解,所以好多160G的硬碟實際容量按電腦實際的1MB=1024KB算都不到160G,這也可以解釋為什麼新買的硬碟“缺斤短兩”並沒有它所標示的那麼大。註:10TB大約等於一個人腦的儲存量。[3] 資料類型Byte資料類型(位元組型)用一個位元組(Byte)儲存,可區別256個數字,取值範圍:0到255。 Byte是從0-255的無符號類型,所以不能表示負數。具體參照資料類型。語言字元效果等同於 unsigned char型typedef unsigned char BYTE定義一種新類型BYTE,它其實就是unsigned char在VC++中,byte型資料的定義包含在windows.h標頭檔中,調用byte需要添加代碼#include <windows.h>而在java中,byte是一個關鍵字表示聲明了一個整形常量在內容中佔用一個位元組取值範圍是-128~127易混概念辨析字在電腦中,一串數位作為一個整體來處理或運算的,稱為一個電腦字,簡稱字。字通常分為若干個位元組(每個位元組一般是8位)。在儲存空間中,通常每個單中繼存放區一個字,因此每個字都是可以定址的。字的長度用位元來表示。在電腦的運算器、控制器中,通常都是以字為單位進行傳送的。字出現在不同的地址其含義是不相同。例如,送往控制器去的字是指令,而送往運算器去的字就是一個數。字長電腦的每個字所包含的位元稱為字長。根據電腦的不同,字長有固定的和可變的兩種。固定字長,即字長度不論什麼情況都是固定不變的;可變字長,則在一定範圍內,其長度是可變的。計算的字長是指它一次可處理的位元字的數目。電腦處理資料的速率,自然和它一次能加工的位元以及進行運算的快慢有關。如果一台電腦的字長是另一台電腦的兩倍,即使兩台電腦的速度相同,在相同的時間內,前者能做的工作是後者的兩倍。一般地,大型電腦的字長為32-64位,小型電腦為12-32位,而微電腦為4-16位。字長是衡量電腦效能的一個重要因素。位元組位元組是指一小組相鄰的位元碼。通常是8位作為一個位元組。它是構成資訊的一個小單位,並作為一個整體來參加操作,比字小,是構成字的單位。在微電腦中,通常用多少位元組來表示儲存空間的儲存容量。例如,在C++的資料類型表示中,通常char為1個位元組,int為4個位元組,double為8個位元組。理解編碼的關鍵,是要把字元的概念和位元組的概念理解準確。這兩個概念容易混淆,我們在此做一下區分:概念描述 舉例字元人們使用的記號,抽象意義上的一個符號。 ‘1‘, ‘中‘, ‘a‘, ‘$‘, ‘¥‘ ……位元組電腦中儲存資料的單元,一個8位的位元,是一個很具體的儲存空間。0x01, 0x45, 0xFA……字串在記憶體中,如果“字元”是以ANSI編碼形式存在的,一個字元可能使用一個位元組或多個位元組來表示,那麼我們稱這種字串為ANSI字串或者多位元組字串。如,"中文123" (佔8位元組,包括一個隱藏的\0)。字元集對於ANSI編碼方式,存在不同的字元集(Charset)。同樣的位元組序列,在不同的字元集下表示的字元不一樣。要正確解析一個ANSI字串,還要選擇正確的字元集,否則就可能導致所謂的亂碼現象。不同語言版本的作業系統,都有一個預設的字元集。在不指定字元集的情況下,系統會使用此字元集來解析ANSI字串。也就是說,如果我們在簡體中文版的Windows下開啟了一個由日文作業系統儲存的ANSI文字檔(僅包含ANSI字串的文字檔),我們看到的將是亂碼。但是,如果我們使用Visual Studio之類的帶編碼選擇的文字編輯器開啟此檔案,並且選擇正確的字元集,我們將可以看到它的原貌。注意:簡體中文字元集中的繁體字和繁體中文字元集中的繁體字,編碼不一定相同(事實證明,似乎是完全不同)。每個字元集都有一個唯一的編號,稱為字碼頁(Code Page)。簡體中文(GB2312)的字碼頁為936,而系統預設字元集的字碼頁為0,它表示根據系統的語言設定來選擇一個合適的字元集。Unicode字串在記憶體中,如果“字元”是以在Unicode中的序號存在的,那麼我們稱這種字串為Unicode字串或者寬位元組字串。在Unicode中,每個字元都佔兩個位元組。如,"中文123"(佔10位元組)。Unicode和ANSI的區別就相當於IME內的“全形”和“半形”的區別。由於不同ANSI編碼所規定的標準是不相同的(字元集不同),因此,對於一個給定的多位元組字串,我們必須知道它採用的是哪一種字元集則,才能夠知道它包含了哪些“字元”。而對於Unicode字串來說,不管在什麼環境下,它所代表的“字元”內容總是不變的。Unicode 有著統一的標準,它定義了世界上絕大多數的字元的編碼,使得拉丁文、數字、簡體中文、繁體中文、日文等都能以同一種編碼方式儲存。資料類型
Uninterpreted
? 位元 ? 位元組 ? Trit ? Tryte
? Word      
 
數值
? 整數 ? Fixed-point ? 浮點數 ? Rational
? Complex ? Bignum ? Interval  
 
文本
? 字元 ? 字串    
 
指標
? 物理地址 ? Reference    
 
組合
? Algebraic data type ? 數組 ? Associative array ? Class
? List ? Object ? Option type ? Product
? Record ? Set ? Union  
 
其他
? 布爾型 ? Bottom type ? Collection ? Enumerated type
? 異常 ? First-class function ? Opaque data type ? Recursive data type
? 訊號標 ? 字串流 ? Top type ? Type class
? Unit type ? Void    
 
相關議題
? 抽象資料型別 ? 資料結構 ? Interface ? Kind
? 原始型別 ? Subtyping ? Template ? Type constructor
? Parametric polymorphism      
 

位元組 - 基礎知識

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.