跳到主要内容

数据存储

二进制

二进制满2进1

1+1=10

  • 1位二进制可以表示2种信息 0,1
  • 2位二进制可以表示4种信息 00,01,10,11
  • 3位二进制可以表示8种信息 000,001,010,011,100,101,110,111
  • ......
  • 32位可以表示 2的32次方 4294967296 种信息

二进制单位 位、字节

  • 位(bit、比特) 用小写b表示 内存的最小单位 一个位可以表示0,1两种值,就是几位数的“位”
  • 字节( Byte ) 用大写的B表示 内存的基本单位是“字节” 一字节等于8位 1B==8b

8位二进制组成一组,一组一组地存在内存中,一组就叫1字节

变量占内存与数据范围关系

每多1位二进制数,就会多1,0两种情况,能表示的信息量就会翻倍,所以公式是:

信息量=2位数\text{信息量}=2^{\text{位数}}
  • int 占4字节,所以最多表示4294967296个信息,实际范围 -2147483648 ~ 2147483647
  • char 占1字节,但是只有128个字符,也就是剩了一位没有使用,后来也出现了扩展ASCII码
  • bool 就比较浪费空间了,它只需要1位,但是却占了1字节,浪费了7字节。因为内存的基本单位是字节。就像一个房间是8平米,就算你用不了8平米空间,也要分给你一个房间。
  • double 是浮点数,它的所有位中,一位表示正负,一部分表示数字,一部分表示科学计数法中的10的几次方-浮点数