二进制

零 基 础 · 慢 慢 学 · 练 到 熟
学习路线:按顺序读完下面 10 课 → 去「动手练习」摆比特 → 用「测验」检验 → 忘了就翻「速查表」

第1课什么是二进制

我们从小数的十进制有 0–9 十个数字,逢十进一;二进制只有 0 和 1 两个数字,逢二进一。它不是新数学,只是把「满几进位」的规则从 10 换成了 2。

为什么计算机用它?因为电路天生只有两种稳定状态:通电 / 断电、高电压 / 低电压——正好对应 1 和 0。用两种状态表示信息最可靠,不怕干扰,所以计算机里的一切(文字、图片、音乐)最终都是一串 0 和 1。

二进制里的一位叫一个比特(bit),是信息的最小单位。8 个比特组成一个字节(byte),能表示 0–255 共 256 个数。

第2课学着数一数(互动)

二进制数数:0、1、10、11、100、101、110、111、1000……规律只有一个:每次 +1 时,末位 0 变 1;如果末位已经是 1,就把它变 0、向左边进一位(逢二进一)。

点「+1」慢慢数,观察哪几位翻变了(金色高亮);也可以让它自动数一遍 0 → 15。

第3课位权:每一位值多少

十进制每一位有自己的「身价」:个、十、百、千……二进制也一样,从右往左依次是 1、2、4、8、16、32……,每一位都是前一位的 2 倍(2 的幂)。

一个二进制数的值 = 把是 1 的位权加起来。这是全部二进制学习的核心,记住了后面都顺。

动手试试:点击下面的方框切换 0 / 1,观察十进制、十六进制怎么变。每个方框上方的数字就是这一位的位权。

第4课二进制 → 十进制:按权展开

方法:把是 1 的那些位的位权加起来,0 的位直接跳过。

1011 = 8 + 0 + 2 + 1 = 11
1100 0101 = 128 + 64 + 4 + 1 = 197
1111 = 8 + 4 + 2 + 1 = 15

小窍门:先看最高位的位权是多少,心里就有了「这个数大概是多大」的底。

第5课十进制 → 二进制:两种方法

方法一:减法拼凑(心算首选)——先找不超过它的最大的 2 的幂,减掉,对剩下的数重复,直到 0。用过哪些位权,哪些位就是 1:

13:最大能减 8 → 剩 5 → 再减 4 → 剩 1 → 减 1 → 剩 0
用到了 8、4、1,所以 13 = 1101

45:减 32 → 剩 13 → 减 8 → 剩 5 → 减 4 → 剩 1 → 减 1 → 0
用到了 32、8、4、1,所以 45 = 101101

方法二:除二取余(笔算通用)——不断除以 2 记下余数,最后把余数从下往上读:

13 ÷ 2 = 6 …… 余 1
 6 ÷ 2 = 3 …… 余 0
 3 ÷ 2 = 1 …… 余 1
 1 ÷ 2 = 0 …… 余 1
余数倒序:1101,所以 13 = 1101

第6课手指计数法:一只手数到 31

把一只手的五根手指当成 5 个比特:竖起 = 1,收起 = 0。位权分配:

拇指 = 1 · 食指 = 2 · 中指 = 4 · 无名指 = 8 · 小指 = 16

一只手就能表示 0–31,两只手(10 指)能数到 1023。试试:竖起拇指和食指 = 1 + 2 = 3;只竖小指 = 16;五指全竖 = 31。

第7课实用规律与心算技巧

  • 看末位辨奇偶:末位是 1 就是奇数,是 0 就是偶数。
  • 末尾添 0 = 乘 2:101(5)→ 1010(10)。去掉末位 = 除以 2 取整,这叫「移位」。
  • 连续 n 个 1 = 2ⁿ − 1:1111 = 16 − 1 = 15,1111 1111 = 256 − 1 = 255。
  • 1 后面 n 个 0 = 2ⁿ:1000 = 8,1 0000 = 16,1 0000 0000 = 256。
  • 记牢 2 的幂:1、2、4、8、16、32、64、128、256、512、1024——心算的地基。

第8课十六进制:二进制的「缩写」

二进制写起来太长,程序员常用十六进制来缩写:0–9 之后用 A、B、C、D、E、F 表示 10–15,书写时常加前缀 0x(如 0xC5)。

妙处在于:每 4 个比特正好等于 1 位十六进制,分组转换毫不费力:

1100 0101 → 1100 = C,0101 = 5 → C5(= 197)
1111 0000 → F0  1010 1010 → AA

第9课位运算:对比特的四种基本操作

位运算是把两个二进制数逐位比较的运算(竖式对齐看每一列):

AND 与:两位都是 1 才得 1  1100 AND 1010 = 1000
OR  或:只要有一个 1 就得 1 1100 OR  1010 = 1110
XOR 异或:两位不同才得 1   1100 XOR 1010 = 0110
NOT 取反:0 变 1、1 变 0   NOT 1100(8位)= 1111 0011

用途举例:AND 用来「摘出」某几位(掩码),OR 用来「打开」某几位,XOR 用来「翻转」某几位。左移 1 位 = 乘 2,右移 1 位 = 除以 2 取整。

第10课生活中的二进制

  • 文件大小:1 字节 = 8 比特;1 KB = 1024 字节,1 MB = 1024 KB,1 GB = 1024 MB。
  • IP 地址:192.168.1.1 的每一节都是 0–255,正好 1 个字节。
  • 颜色:网页颜色 #FF8000 是 3 个字节的十六进制,分别表示红、绿、蓝的浓度(00–FF)。
  • 网速:100 Mbps 里的 b 是小写比特;除以 8 才是每秒下载的字节数(约 12.5 MB/s)。
当前连胜 0 · 历史最佳 0
2 的幂(位权表)
n2ⁿn2ⁿ
十六进制 ↔ 二进制 ↔ 十进制(0–15)
十六进制二进制十进制
十进制 16–31 对照
十进制二进制十六进制
常见规律速记
二进制十进制规律
112⁰
102末尾添0 = ×2
1004
10008
1111152⁴ − 1
1 0000162⁴
1111 11112552⁸ − 1
1 0000 00002562⁸
记牢 2⁰–2¹⁰(1、2、4、8、16、32、64、128、256、512、1024),
大多数二进制心算都靠它们。1 K = 1024,1 M = 1024²。