6.计算机字节、位、内存、数据的一些关系

计算机内存储和处理信息的最小单位是位(bit或比特),它是BInary digiT(二进制数)的缩写,一个比特的值可以是0或1,计算机通常不会每次只对一个二进制位进行操作,它们会对一组二进制位进行操作,8个二进制位为一个字节(byte),现在的微处理器都是面向字节的,所以说计算机存储信息的最小单位是字节也是对的,它的二进制表示范围从00000000~11111111,换算成十进制是0~255,换算成十六进制是00~ff

内存单元从0开始编号,称为内存地址。每个内存单元可以看作一间房间,内存地址就是门牌号。

    0       1       2       3       4       5       6     ...
┌───┬───┬───┬───┬───┬───┬───┐
│      │      │      │      │      │      │      │...
└───┴───┴───┴───┴───┴───┴───┘

一个字节是1byte,1024字节是1K,1024K是1M,1024M是1G,1024G是1T。一个拥有4T内存的计算机的字节数量就是:

4T = 4 x 1024G
   = 4 x 1024 x 1024M
   = 4 x 1024 x 1024 x 1024K
   = 4 x 1024 x 1024 x 1024 x 1024
   = 4398046511104

不同的数据类型占用的字节数不一样。我们看一下Java基本数据类型占用的字节数:

       ┌───┐
  byte │      │
       └───┘
       ┌───┬───┐
 short │      │      │
       └───┴───┘
       ┌───┬───┬───┬───┐
   int │      │      │      │      │
       └───┴───┴───┴───┘
       ┌───┬───┬───┬───┬───┬───┬───┬───┐
  long │      │      │      │      │      │      │      │      │
       └───┴───┴───┴───┴───┴───┴───┴───┘
       ┌───┬───┬───┬───┐
 float │      │      │      │      │
       └───┴───┴───┴───┘
       ┌───┬───┬───┬───┬───┬───┬───┬───┐
double │      │      │      │      │      │      │      │      │
       └───┴───┴───┴───┴───┴───┴───┴───┘
       ┌───┬───┐
  char │      │      │
       └───┴───┘

byte恰好就是一个字节,而longdouble需要8个字节。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/thinking-in-programming/2383.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注