基本概念:网络
位(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(彻底等同)