計算機字節計算?
字節(Byte):字節是通過網絡傳輸信息(或在硬盤或內存中存儲信息)的單位。 字節是計算機信息技術用于計量存儲容量和傳輸容量的一種計量單位,1個字節等于8位二進制。 在ASCII碼中,一個英文字母(不分大小寫)占一個字節的空間,一個中文漢字占兩個字節的空間。 符號:英文標點占一個字節,中文標點占兩個字節。舉例:英文句號“.”占1個字節的大小,中文句號“。”占2個字節的大小 一個二進制數字序列,在計算機中作為一個數字單元,一般為8位二進制數,如一個ASCII碼就是一個字節,此類單位的換算為: 1千吉字節(TB,Terabyte)=1024吉字節(2的40次方字節) (1TB=1024GB) 1吉字節(GB,Gigabyte)=1024兆字節(2的30次方字節) (1GB=1024MB) 1兆字節(MB,Megabyte)=1024千字節(2的20次方字節) (1MB=1024KB) 1千字節(KB,Kilobyte)=1024字節(2的10次方字節)(1KB=1024B) 1字節(Byte)= 8位(bit) 注:TB是現在電腦硬盤最大的存儲量單位。10TB大約等于一個人腦的存儲量。 更大的單位,還有 PB(Petabyte,1PB=1024TB)、EB(Exabyte,1EB=1024PB)、ZB(Zettabyte,1ZB=1024EB)、YB(Yottabyte,1YB=1024ZB)…… 1.2 字符,字節,字符串 理解編碼的關鍵,是要把字符的概念和字節的概念理解準確。這兩個概念容易混淆,我們在此做一下區分: 概念描述 舉例 字符 人們使用的記號,抽象意義上的一個符號。 '1', '中', 'a', '$', '¥', …… 字節 計算機中存儲數據的單元,一個8位的二進制數,是一個很具體的存儲空間。0x01, 0x45, 0xFA, …… ANSI 字符串 在內存中,如果“字符”是以ANSI編碼形式存在的,一個字符可能使用一個字節或多個字節來表示,那么我們稱這種字符串為 ANSI 字符串或者多字節字符串。如,"中文123" (占7字節)。 字符集和代碼頁 對于ANSI編碼方式,存在不同的字符集(Charset)。同樣的字節序列,在不同的字符集下表示的字符不一樣。要正確解析一個ANSI字符串,還要選擇正確的字符集,否則就可能導致所謂的亂碼現象。不同語言版本的操作系統,都有一個默認的字符集。在不指定字符集的情況下,系統會使用此字符集來解析 ANSI 字符串。也就是說,如果我們在簡體中文版的Windows下打開了一個由日文操作系統保存的 ANSI 文本文件(僅包含 ANSI 字符串的文本文件),我們看到的將是亂碼。但是,如果我們使用Visual Studio之類的帶編碼選擇的文本編輯器打開此文件,并且選擇正確的字符集,我們將可以看到它的原貌。注意:簡體中文字符集中的繁體字和繁體中文字符集中的繁體字,編碼不一定相同(事實證明,似乎是完全不同)。 每個字符集都有一個唯一的編號,稱為代碼頁(Code Page)。簡體中文(GB2312)的代碼頁為936,而系統默認字符集的代碼頁為0,它表示根據系統的語言設置來選擇一個合適的字符集。 UNICODE 字符串 在內存中,如果“字符”是以在Unicode中的序號存在的,那么我們稱這種字符串為Unicode字符串或者寬字節字符串。在Unicode中,每個字符都占兩個字節。如,"中文123"(占10字節)。 Unicode和ANSI的區別就相當于輸入法內的“全角”和“半角”的區別。 由于不同 ANSI 編碼所規定的標準是不相同的(字符集不同),因此,對于一個給定的多字節字符串,我們必須知道它采用的是哪一種字符集則,才能夠知道它包含了哪些“字符”。而對于 UNICODE 字符串來說,不管在什么環境下,它所代表的“字符”內容總是不變的。Unicode 有著統一的標準,它定義了世界上絕大多數的字符的編碼,使得拉丁文、數字、簡體中文、繁體中文、日文都能一同一種編碼方式保存。