计算机内存基本单位,比特、字节等之间的关系

这几天上课讲到计算机内存相关的问题,上课没听明白,十分困惑,晚上看了看别人的博客小有收获,与大家分享。

首先大家了解最多的,一定是KB/MB/GB之间的关系。计算机内存单位由小到大分别是比特Bit、字节byte、千字节KB、兆字节MB、千兆字节(吉字节)GB、太子节TB、拍字节PB、艾字节EB。除了bit和byte之间的关系为1byte = 8 bit之外,其余都是1024进制。

bit和byte是两个易混点,详细说一下。

* byte 8 bits -128 - + 127
  * 1 bit = 1 二进制数据
  * 1 byte = 8 bit
  * 1 字母 = 1 byte = 8 bit(位)
  * 1 汉字 = 2 byte = 16 bit

  • 1千吉字节(KGB.KiloGigaByte)=1024吉字节
  • 1吉字节(GB.GigaByte) =1024兆字节
  • 1兆字节(MB.MegaByte) =1024千字节
  • 1千字节(KB.KiloByte) =1024字节
  • 1字节(Byte) = 8位(bit)
  • 比特(bit)即一个二进制位 例如100011就是6比特
  • 字节(byte)这是计算机中数据类型最基本的单位了,8bit 组成1byte
  • 字(word)两个byte称为一个word,所以字大小应该是16位bit,共两字节 双字(double word 简写为DWORD)见名知意,两个字,四个字节,32bit

 char 字符型 
  

占1byte 即8位,一个char型数据(例如:a、#、!之类的)用了1个字节来存储
unsigned char 无符号的字符型

占1byte 即8位 它主要是为了能够兼容扩展ASCII码,由于 char 由8位表示表示范围为 -128 - +127,无法表示带上扩展ASCII码总共256个字符所以如果把 8位

中的最高位符号位也用来计数,就可以正好表示256个字符,unsigned char 表示范围为 0 - 255 正好256个数可以对应包含扩展ASCII码在内的共计256个ASCII字

符。
汉字在计算机中存储是使用机内码(一种数字编号)来存储的,而常用汉字不过是几万个,如果用16位比特(即2的16此方等于65536)就可以表示了,所以汉字字

符存储使用了两个字节。每两个字节即16bit对应一个汉字。
int 整型数据

占4byte 即32位,一个int型数据的长度用了4个字节来存储 short 短整型 占2byte 即16位,两个字节。

long 长整型

占4byte 即32为,四个字节

float 单精度浮点型

占4byte 即32位,四个字节 double

双精度浮点型

占8byte 即64位,八个字节


假如你使用的不是 visual studio 编译器 或者不是在win32环境下编程,以上的陈述可能就不对,我建议你查看一下 可以使用int i = sizeof(char)或者 sizeof(int)来看看i的值,如果i == 4,表示一个当前的数据类型占四个字节



你可能感兴趣的:(其他)