返回博客
技术 9 分钟阅读 2024-02-10

为什么计算机用二进制?进制转换完全指南

从基础原理讲解为什么计算机使用二进制,以及二进制、八进制、十六进制之间的转换规则。

二进制 十六进制 进制转换 编程 binary hexadecimal programming computer science

为什么计算机使用二进制?


计算机使用二进制(0和1)的根本原因是物理限制和工程简便性:


1. 电子开关的两种状态

计算机内部由数十亿个晶体管组成,每个晶体管只有两种状态:导通(1)和截止(0)。


2. 抗干扰能力强

使用两个明确的电压等级(低电压=0,高电压=1),即使在有噪声干扰的环境中,也能可靠区分。


3. 逻辑运算天然对应

布尔代数中的真(True)和假(False)与1和0完美对应。


各种进制详解


十进制(Decimal,Base-10)

我们日常使用的计数系统,使用0-9共10个数字,每位权值为10的幂。


二进制(Binary,Base-2)

计算机底层使用,只有0和1,每位权值为2的幂。

例:1010₂ = 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = 10₁₀


八进制(Octal,Base-8)

使用0-7,是二进制的简化表示(每3位二进制 = 1位八进制)。


十六进制(Hexadecimal,Base-16)

使用0-9和A-F(10-15),是编程中最常用的非十进制系统,4位二进制 = 1位十六进制。

常见于:内存地址、颜色代码(#FF5733)、字节数据


进制转换方法


十进制转二进制:除2取余法

将十进制数除以2,记录余数,直到商为0,余数倒排即为二进制结果。


例:25 ÷ 2 = 12...1, 12 ÷ 2 = 6...0, 6 ÷ 2 = 3...0, 3 ÷ 2 = 1...1, 1 ÷ 2 = 0...1

结果倒排:11001₂ = 25₁₀ ✓


二进制转十六进制

每4位二进制对应1位十六进制:

1111 0101₂ = F5₁₆


程序员为何需要了解进制?


  • **调试底层代码**:内存地址通常以十六进制显示
  • **网络编程**:IP地址、子网掩码的位运算
  • **颜色处理**:CSS颜色#FF5733就是RGB(255,87,51)
  • **权限系统**:Linux文件权限755就是八进制
  • **加密算法**:哈希值通常以十六进制表示