二进制
在二进制中转换和执行操作
如何使用二进制
- 1用对应模式输入二进制、十进制或十六进制数。
- 2选择要转换的目标进制。
- 3查看转换后的值以及(相关时)位长度。
进制间转换
十进制 = Σ(第i位数字 × 进制^i);二进制用 0–1,基为 2二进制仅用 0 和 1 表示数,每一位是 2 的幂,这正是计算机存储数据的方式。
转十进制时把每位乘以其位值后求和;从十进制转换则不断除以目标进制并收集余数。
十进制转二进制用「**除 2 取余,倒序排列**」:把 13 连续除以 2,余数依次是 1、0、1、1,倒过来就是 1101。反过来二进制转十进制用「按权展开」:1101 = 1×8 + 1×4 + 0×2 + 1×1 = 13。**每 4 位二进制对应 1 位十六进制**,这是快速转换的捷径——1111 1111 直接拆成 F F,即 FF(255)。
二进制的第 n 位(从 0 开始)代表 2ⁿ,所以 8 位二进制最大值是 2⁸ − 1 = 255,16 位是 65,535,32 位是 4,294,967,295。这也是为什么 IPv4 地址每段最大值是 255(每段 8 位),以及为什么老游戏里金币上限常是 2,147,483,647(32 位有符号整数的最大值,即 2³¹ − 1)。
| 十进制 | 二进制 | 八进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 5 | 101 | 5 | 5 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 127 | 1111111 | 177 | 7F |
| 255 | 11111111 | 377 | FF |
十进制 ↔ 二进制 ↔ 八进制 ↔ 十六进制对照表
常见问题
为何计算机用二进制?
电子设备可靠地表示两种状态(开/关),使基 2 成为逻辑门的自然选择。
什么是位与字节?
位是单个二进制数字;字节是 8 位,常用存储单位。
如何把十进制转二进制?
不断除以 2,余数自底向上读即得二进制数字。
负数在二进制里怎么表示?
用「补码」:正数按位取反再加 1。以 8 位为例,5 是 00000101,取反得 11111010,加 1 得 11111011,这就是 −5。补码的好处是加减法可以统一用加法器实现,0 也只有一种表示。8 位补码的范围是 −128 到 +127,这也是 int8 的取值范围。
为什么要学二进制?
计算机底层只有高低电平两种状态,天然对应 0 和 1。理解二进制能帮你搞清楚:为什么 1 KB 是 1024 而不是 1000(2¹⁰)、为什么子网掩码是 255.255.255.0、为什么颜色 #FF0000 是纯红(每两位十六进制对应 R/G/B 通道,FF = 255)。这些概念都建立在二进制之上。
