二进制数

初中计算机科学二进制位值:每一位的值是其右侧一位的两倍

8 + 2 + 1 = 11

11

关于此实验

在计算机内部,每个数字、字母、图片和声音都以一组开关状态存储:开或关,也就是0或1。每个开关状态称为一位(bit)。就像十进制数中每一位的数值都是其右侧一位的10倍,每一位二进制数的数值都是其右侧一位的2倍:1、2、4、8、16,以此类推。切换各位的开关状态,逐个计数并观察进位如何传递;将二进制数转换为十进制和十六进制,并了解计算机如何存储负数。

学习目标

  • 说明二进制是一种基数为2的数制,只使用数字0和1
  • 在最多8位的范围内转换二进制数和十进制数
  • 用二进制计数,并说明进位的工作原理
  • 求出给定位数所能存储的最大数
  • 将二进制转换为十六进制,并说明溢出和二进制补码

使用方法

  1. 1用4位二进制数,每次只打开一位。写下每一位的数值。你发现了什么规律?
  2. 2用4位二进制数表示5、9和15。你用了哪些位?
  3. 3从0开始,一次又一次地按“+1”。每次都会变化的是哪一位?变化最少的是哪一位?
  4. 4用 4 位数到 15,再按一次 +1。会发生什么?为什么?
  5. 5切换到 8 位。你能表示的最大数是多少?将它与 2⁸ - 1 对照一下。
  6. 6开启负数。现在最左边的位表示什么值?试着表示 -1 和 -128。
  7. 7选择“构造数字”,完成五个目标。试着从最大的位开始。

模型

二进制转十进制:将所有已开启位的位值相加。
使用 n 位可以存储 2ⁿ 个不同的值,范围从 0 到 2ⁿ - 1。
每 4 位组成一组,对应一个十六进制数字。
二进制补码:要取负数,先反转每一位,再加 1

假设

  • 与普通数字一样,书写位时将最高有效位放在左边。
  • 无符号数的范围是 0 到 2ⁿ - 1。启用负数后,将使用二进制补码,最左边一位的权值为 -2ⁿ⁻¹。
  • 在最大值上加 1 会回到最小值,就像真实计算机的定长运算一样。这称为溢出。
  • 挑战数字来自一个固定序列,因此每个班级看到的目标和顺序都相同。

在课堂上试试这个实验

  1. Q1将二进制数 10110 转换为十进制数。
  2. Q2使用 8 位将十进制数 45 转换为二进制数。
  3. Q3要存储不超过 1000 的数,需要多少位?
  4. Q4为什么末尾是 1 的二进制数总表示奇数?
  5. Q5在 8 位二进制补码中,1111 1110 表示多少?请解释你是如何得出答案的。

常见问题

计算机为什么使用二进制而不是十进制?

电子开关只需处理关和开两种状态时,很容易做到可靠。要区分表示十进制数字的十种不同电压级别,则要困难得多,也更容易出错。

什么是字节?

一个字节是 8 位。它可以存储 256 种不同的值(从 0 到 255),也可以存储一个普通英文文本字符。

为什么十六进制很有用?

很长的二进制数很难阅读。因为 16 = 2⁴,每四位正好对应一位十六进制数,所以程序员会用十六进制简写二进制数,例如颜色代码 #FF8800。