第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 的位直接跳过。
1100 0101 = 128 + 64 + 4 + 1 = 197
1111 = 8 + 4 + 2 + 1 = 15
小窍门:先看最高位的位权是多少,心里就有了「这个数大概是多大」的底。
第5课十进制 → 二进制:两种方法
方法一:减法拼凑(心算首选)——先找不超过它的最大的 2 的幂,减掉,对剩下的数重复,直到 0。用过哪些位权,哪些位就是 1:
用到了 8、4、1,所以 13 = 1101
45:减 32 → 剩 13 → 减 8 → 剩 5 → 减 4 → 剩 1 → 减 1 → 0
用到了 32、8、4、1,所以 45 = 101101
方法二:除二取余(笔算通用)——不断除以 2 记下余数,最后把余数从下往上读:
6 ÷ 2 = 3 …… 余 0
3 ÷ 2 = 1 …… 余 1
1 ÷ 2 = 0 …… 余 1
余数倒序:1101,所以 13 = 1101
第6课手指计数法:一只手数到 31
把一只手的五根手指当成 5 个比特:竖起 = 1,收起 = 0。位权分配:
一只手就能表示 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 位十六进制,分组转换毫不费力:
1111 0000 → F0 1010 1010 → AA
第9课位运算:对比特的四种基本操作
位运算是把两个二进制数逐位比较的运算(竖式对齐看每一列):
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)。
| n | 2ⁿ | n | 2ⁿ |
|---|
| 十六进制 | 二进制 | 十进制 |
|---|
| 十进制 | 二进制 | 十六进制 |
|---|
| 二进制 | 十进制 | 规律 |
|---|---|---|
| 1 | 1 | 2⁰ |
| 10 | 2 | 末尾添0 = ×2 |
| 100 | 4 | 2² |
| 1000 | 8 | 2³ |
| 1111 | 15 | 2⁴ − 1 |
| 1 0000 | 16 | 2⁴ |
| 1111 1111 | 255 | 2⁸ − 1 |
| 1 0000 0000 | 256 | 2⁸ |
大多数二进制心算都靠它们。1 K = 1024,1 M = 1024²。