# 什么是二进制

二进制是一种基于两个符号的数制系统,通常使用0和1表示

# 位与字节

在计算机中存储一个1或者一个0所需要的存储空间大小叫做,也叫比特(bit)

八个构成一个字节,也就是 byte

平时所说存储单位里面的B时指字节字节是计算机中最常用的计量单位

计算机的编码,就是把字符串类型的数据,转换成bytes类型的数据

计算机的解码,就是把bytes类型的数据,转换成字符串类型的数据

# 进制

# 说明

n进制中,从右往左分别是第0,1,2,3,4...位,从0开始

每一位都代表该位所占的权重,用幂次表示,从右往左依次是 n⁰ n⁴.....,

进制,进制,逢n进一,所以,权重可以理解为代表多少个1

10进制中

  • 个位 代表 10⁰ 的权重,即 1(本位表示1个1)
  • 十位 代表 10¹的权重,即 10(本位表示10个1)
  • 百位 代表 10² 的权重,即 100(本位表示100个1)
  • 千位 代表 10³ 的权重,即 1000(本位表示1000个1)
  • 以此类推。

因为逢10进1

如果百位是2,表示已经累计了2 × 10² = 2 × 100 = 2001

2进制中

  • 0位代表2⁰的权重,即1(本位表示1个1)
  • 1位代表的权重,即2(本位表示2个1)
  • 2位代表的权重,即4(本位表示4个1)
  • 3位代表的权重,即8(本位表示8个1)

因为逢2进1

如果第2位是2,表示已经累计了2 × 2² = 2 × 4 = 81

16进制中

  • 0位代表16⁰的权重,即1(本位表示1个1)
  • 1位代表16¹的权重,即16(本位表示16个1)
  • 2位代表16²的权重,即256(本位表示256个1)
  • 3位代表16³的权重,即4096(本位表示4096个1)

因为逢16进1

如果第2位是2,表示已经累计了2 × 16² = 2 × 256 = 5121

# 10进制转2进制

通过用不断的除2,直至为0,将所有余数逆序排列即得二进制

  • 20 ÷ 2 = 10 余0
  • 10 ÷ 2 = 5 余 0
  • 5 ÷ 2 = 2 余1
  • 2 ÷ 2 = 1 余 0
  • 1 ÷ 2 = 0 余1

所以,20的二进制表示为10100

# 2进制转10进制

  • 0位代表2⁰ = 1,0 * 1 = 1
  • 1位代表2¹ = 2,0 * 2 = 0
  • 2位代表2² = 4,1 * 4 = 4
  • 3位代表2³ = 8,0 * 8 = 0
  • 4位代表2⁴ = 16,1 * 16 =16
  • 最终,1+0+4+0+16= 20

所以,二进制10100代表了10进制的20

# 10进制转16进制

通过用不断的除16,直至为0,将所有余数逆序排列即得16进制

# 2进制转16进制

11100

# 方法1

先转为10进制,然后将10进制转为

11100转为2进制是28

28转为16进制

  • 28÷16 = 1 余 12
  • 1÷16 = 0 余 1
  • 余数逆序排列,得1C(在16进制中,C表示12)
# 方法2

(因为2⁴ = 16,所以1个16进制数正好用4个2进制数表示)

11100从右往左每隔4位拆分为 11100

  • 二进制1表示10进制的1,用16进制表示为1
  • 二进制1100表示10进制的12,用16进制表示为C
  • 结果为1C

# 16进制转2进制

1C

# 方法1

先转为1进制 1×16¹ + 12×16⁰ = 16+12 = 28

然后将28转为2进制 11100

# 方法2

将每一位都用2进制表示

1代表10进制的1,用2进制表示为1

C代表10进制的12,用2进制表示为1100

结果组合起来为11000

# 常见二进制

10进制 2进制 16进制
15 1111 F
255 1111 1111 FF
4095 1111 1111 1111 FFF
65535 1111 1111 1111 1111 FFFF

# 2的幂次

幂次 备注
2⁴ 16 1个16进制位
2⁸ 256 一个字节的取值范围: 0-255
2¹⁰ 1,024 ≈1K, 千字节 KB 的基础
2¹² 4,096
2¹⁶ 65,536 2字节无符号整数的最大值
2⁶ × 2¹⁰ = 64 × 1024 = 65536 (64Kb)
2⁸ × 2⁸ = 256 × 256 = 65536
2²⁰ 1,048,576 ≈1M, 兆字节 MB 的基础
2²⁴ 1,073,741,824 ≈1G, 吉字节 GB 的基础
2³¹-1 2,147,483,647 Java Integer最大值
2³² 4,294,967,296 4字节无符号整数的最大值 ≈ 4.3G
32位系统能寻址的最大内存
上次更新: 2025/08/13 11:54:54