基本概念:網絡
位(Bit):「位」或「比特」,是計算機運算的基礎;編碼
字節(Byte):「字節」是經過網絡傳輸信息(或在硬盤或內存中存儲信息)的單位。spa
字節是計算機信息技術用於計量存儲容量和傳輸容量的一種計量單位,1個字節等於8位二進制。一個二進制數字序列,在計算機中做爲一個數字單元,通常爲8位二進制數,如一個ASCII碼就是一個字節.code
字(WORD),2個字節組成一個字。htm
雙字(DWORD),4個字節組成一個雙字。接口
如ANSI標準規定一個字符爲1個字節或多個字節,UNICODE爲寬字節字符串或者UNICODE字符串,規定,每一個字符都佔兩個字節。如"中國123",ANSI編碼爲5字節,在UNICODE中爲10字節。內存
Unicode和ANSI的區別就至關於輸入法內的「全角」和「半角」的區別。字符串
因爲不一樣 ANSI 編碼所規定的標準是不相同的(字符集不一樣),所以,對於一個給定的多字節字符串,咱們必須知道它採用的是哪種字符集則,纔可以知道它包含了哪些「字符」。而對於 UNICODE 字符串來講,無論在什麼環境下,它所表明的「字符」內容老是不變的。Unicode 有着統一的標準,它定義了世界上絕大多數的字符的編碼,使得拉丁文、數字、簡體中文、繁體中文、日文都能一同一種編碼方式保存。get
Bit 和Byte的區別:it
好比:USB2.0標準接口傳輸速率480Mbps,就有人誤解爲480兆/秒,一樣網絡帶寬2MB,就易誤解爲2兆/秒。實際上,480Mbps應爲480兆比特/秒或480兆位/秒,它等於「60兆字節/秒」;一樣,2MB,就應該是256兆字節/秒。
Bit和Byte同譯爲"比特",都是數據量度單位,bit=「比特」或「位」。
Byte=字節即1byte=8bits,二者換算是1:8的關係。
Mbps=mega bits per second(兆位/秒)是速率單位,因此2M帶寬應該是2兆位/秒,即2MBps。
MB=mega bytes(兆比、兆字節)是量單位,1MB/S(兆字節/秒)=8MBPS(兆位/秒)。
一般所說的硬盤容量是40GB、80GB、100GB,這裏的B指是的Byte也就是「字節」。
1 KB = 1024 bytes
1 MB = 1024 KB = 1024*1024 bytes
1 GB = 1024 MB = 1024*1024*1024 bytes
好比之前所謂的56KB的MODEM換算過來56KBps除以8也就是7Kbyte,因此真正從網上下載文件存在硬盤上的速度也就是每秒7Kbyte;也就是說與傳輸速度有關的B通常指的是Bit;與容量有關的B通常指的是Byte。
Bit,Byte,WORD,DWORD本質:
在Visual C++ 6.0中,BYTE與WORD,DWORD本質上都是一種無符號整型,它們在WINDEF.H中被定義,定義以下:
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
也就是說BYTE是無符號的char型(char型本質上也是一種1個字節的整型),WORD是無符號short型,DWORD是無符號long型。
而在Visual C++ 6.0中,char型長度爲1字節,short型長度爲2字節,int和long型長度都爲4字節,所以能夠認爲BYTE與WORD,DWORD定義的變量分別得到了1字節,2字節,4字節內存,正與BYTE與WORD,DWORD的字面意義相符。
即:BYTE=unsigned char(徹底等同) WORD=unsigned short(徹底等同) DWORD=unsigned long(徹底等同)