显示页面讨论过去修订反向链接回到顶部 本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 202606162300 ====== 进制 ====== |进制|数码|基数|位权| |二进制(B)|0,1|2|$2^k$| |八进制(O)|0,1,2,3,4,5,6,7|8|$8^k$| |十进制(D)|0,1,2,3,4,5,6,7,8,9|10|$10^k$| |十六进制(H)|0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F|16|$16^k$| 位权:数字中每个位置对应的单位值。 ====== 十进制与其他进制之间的转换 ====== 1)其他进制转十进制 R进制数:$X_{m-1}··· X_{0} X_{-1}··· X_{-n} = \Sigma_{k=-n}^{k=m-1} X_{k} R^{k} $ 例如二进制:$101.01=1 \times 2^2+1 \times 2^0+1 \times 2^{-2}=5.25$ 2) 十进制转其他进制 |位置|整数部分:连除取余法| 小数部分:连乘取整法| |表示|$N = (d_{m-1} \cdots d_1 d_0)_R$| $F = (0.d_{-1} d_{-2} \cdots d_{-n})_R$| |d值|其中每一位由连续除以R的余数决定| 其中每一位由连续乘以R的整数部分决定| |公式|$N_0 = N$ \\ $N_{i+1} = \lfloor N_i / R \rfloor \quad (i = 0,1,2,\cdots) $ \\ $d_i = N_i \bmod R \quad \text{(余数,取值范围 } 0 \sim R-1\text{)}$| $F_0 = F \quad \text{(纯小数部分)} $ \\ $F_{i+1} = \text{frac}(F_i \times R) \quad \text{(取小数部分继续)} $ \\ $d_{-i} = \lfloor F_i \times R \rfloor \quad \text{(乘积的整数部分,作为下一位)}$ | |停止条件|当 $N_{i+1} = 0 $时停止,最后得到的余数 $d_{m-1}$ 作为最高位。|精确转换:当 F_{i+1} = 0 时停止(小数部分乘尽) \\ 近似转换:达到所需精度位数时停止(如保留 n 位小数)| | 示例 |十进制 19 转二进制 (R=2) \\ 19 ÷ 2 = 9 余 1 $(d_0)$ \\ 9 ÷ 2 = 4 余 1 $(d_1)$ \\ 4 ÷ 2 = 2 余 0 $(d_2)$ \\ 2 ÷ 2 = 1 余 0 $(d_3)$ \\ 1 ÷ 2 = 0 余 1 $(d_4)$ 停止 \\ 结果: $(10011)_2$ | 十进制 0.625 转二进制 (R=2) \\ 0.625 × 2 = 1.25 → 整数部分 1 $(d_{-1})$,剩余 0.25 \\ 0.25 × 2 = 0.5 → 整数部分 0 $(d_{-2})$,剩余 0.5 \\ 0.5 × 2 = 1.0 → 整数部分 1 $(d_{-3})$,剩余 0.0 停止 \\ 结果: $(0.101)_2$ | 若数含整数部分 N 和小数部分 F,则: $(N.F)_{10} = (N)_{10} \text{转} R \quad + \quad (0.F)_{10} \text{转} R$ 两部分分别转换,最后用小数点拼接。 示例: 19.625 转二进制 = $(10011)_2 + (0.101)_2 = (10011.101)_2 $ 特殊情况:无限循环 有些十进制小数无法精确转换成二进制(如 0.1),会形成循环: $0.1_{10} = (0.000110011001100\cdots)_2 = (0.0\overline{0011})_2$ 此时按精度要求截断即可。 ====== 二、八、十六进制之间的转换 ====== ^ 转换方向 ^ 方法 ^ 示例 ^ | 二进制 → 八进制 | 整数部分**从右往左**,小数部分**从左往右**,每 **3 位**一组,不足补 0, \\ 每组换 1 位八进制 | (10 111 101.010 1)₂ = (275.24)₈ | | 八进制 → 二进制 | 每位八进制数展开成 **3 位**二进制(高位补 0) | (275.24)₈ = (010 111 101.010 100)₂ | | 二进制 → 十六进制 | 整数部分**从右往左**,小数部分**从左往右**,每 **4 位**一组,不足补 0, \\ 每组换 1 位十六进制 | (1011 1101.0101)₂ = (BD.5)₁₆ | | 十六进制 → 二进制 | 每位十六进制数展开成 **4 位**二进制(高位补 0) | (BD.5)₁₆ = (1011 1101.0101)₂ | | 八进制 ↔ 十六进制 | **以二进制为桥梁**:八进制→二进制→十六进制(反之亦然) | (275)₈ → (010111101)₂ → (0BD)₁₆ = (BD)₁₆ | ====== 含符号数值的表示 ====== ^ 码制 ^ 转换规则 ^ 示例(N = -25) ^ 特点 ^ 主要用途 ^ | 原码 | 符号位:0正1负 \\ 数值位:真值的绝对值 | 符号位1,数值位011001 → **10011001** | 0有+0和-0两种表示 | **人类直观理解**,用于输入输出显示,不参与运算 | | 反码 | 正数:同原码 \\ 负数:符号位不变,数值位按位取反 | 原码10011001 → 符号位1不变,数值位0011001取反得1100110 → **11100110** | 0有两种表示,加减需循环进位 | **中间过渡桥梁**,补码的中间步骤,现代计算机不用 | | 补码 | 正数:同原码 \\ 负数:反码末位+1(符号位不变) | 反码11100110 + 1 → **11100111** | **计算机实际使用**,0唯一,减法统一为加法 | **整数运算核心**,CPU中的整数都用补码表示和计算 | | 移码 | **补码符号位取反** \\ (数值位不变) | 补码11100111 → 符号位1变0 → **01100111** | 便于浮点数阶码比较,0唯一 | **浮点数阶码**,便于比较指数大小(IEEE 754标准使用) | 登录 Detach Close 该主题尚不存在 您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。 初级程序员考试.txt 最后更改: 2026/06/16 23:26由 张叶安 目前已被下列人员锁定: 张叶安 登录