位元組與位的介紹

2021-07-24 12:39:39 字數 1911 閱讀 5253

位元組(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 有著統一的標準,它定義了世界上絕大多數的字元的編碼,使得拉丁文、數字、簡體中文、正體中文、日文都能一同一種編碼方式儲存。

位元組與位的轉換

include include using namespace std double power double a,int b 求a的冪次方 double result 1 int i 0 if a 0 a 1 result a else return result int bitwise int ...

位 位元組 進製梳理與位操作

位 bit 是計算機最基礎也是最小的資料度量 位是二進位制數例如 10101010 每乙個數字便是一位 bit 位元組 每一位元組有8位8bit 進製是進製,位是位 16進製制數0xffffffff 其中0x是16進製制數的標誌,表示標誌後面的數是16進製制的 其中每乙個f可以表示成二進位制數 11...

java中位元組與位的轉換

使用場景 用於解析自定義協議,比如某一位代表乙個狀態 public class byteutils return bytearr 把byte轉為字串的bit param b return public static string bytetobitstring byte b 獲取乙個位元組第n位,思...