进制转换及计算机各种运算详细讲解
一、进制的基础概念进制是计数的进位规则核心是逢 R 进一R 称为基数。计算机底层只识别二进制编程与硬件设计中常用八进制、十六进制简化书写。1. 核心要素基数进制中可用数码的总个数如十进制基数为 10数码为 0~9。位权每个数位的权重等于「基数的位序次方」。整数部分从右往左位序从 0 开始递增小数部分从左往右位序从 - 1 开始递减。通用公式R 进制数的十进制真值 每一位数码 × 对应位权再求和。2. 四种常用进制对比表格进制类型基数数码范围标识后缀示例十进制100 ~ 9D可省略123.45 或 123.45D二进制20、1B1011.01B八进制80 ~ 7O / Q17.2O十六进制160~9、A~FA10F15大小写均可H2A.3FH二、进制转换方法核心1. 任意进制 → 十进制按权展开求和将每一位数码乘以对应位权所有结果相加得到十进制真值。整数示例二进制1011B转十进制 1×230×221×211×20802111小数示例二进制10.11B转十进制 1×210×201×2−11×2−2200.50.252.75十六进制示例2AH转十进制 2×16110×1603210422. 十进制 → 任意进制整数除基取余小数乘基取整整数部分除基取余逆序排列用十进制数反复除以目标进制基数记录余数直到商为 0从最后一个余数到第一个余数排列即为结果。示例十进制 25 转二进制基数 2 25÷212 余 112÷26 余 06÷23 余 03÷21 余 11÷20 余 1 逆序取余11001B小数部分乘基取整顺序排列用小数部分反复乘以目标进制基数记录整数部分直到小数部分为 0 或达到精度要求按整数出现的顺序排列即为结果。示例十进制 0.6875 转二进制 0.6875×21.375整数 10.375×20.75整数 00.75×21.5整数 10.5×21.0整数 1 顺序取整0.1011B注意多数十进制小数无法精确转为二进制如 0.1会出现无限循环只能按精度取近似值。3. 二进制 ↔ 八进制三位一组法原理8231 位八进制数 等价于 3 位二进制数。二进制转八进制整数从右往左、小数从左往右每 3 位为一组首尾不足 3 位补 0每组对应 1 位八进制数拼接即可。 示例10110.011B→ 分组为010 110 . 011→ 对应2 6 . 3→26.3O八进制转二进制每位八进制拆为 3 位二进制去掉首尾多余的 0 即可。4. 二进制 ↔ 十六进制四位一组法原理16241 位十六进制数 等价于 4 位二进制数。 方法与三位组完全一致仅按 4 位分组。示例101101.101B→ 分组为0010 1101 . 1010→ 对应2 D . A→2D.AH5. 八进制 ↔ 十六进制无直接对应规则通常先转为二进制或十进制作为中转再转换为目标进制。三、计算机数值编码原码、反码、补码计算机中所有数据以二进制存储有符号数统一用补码表示和运算核心目的是将减法转化为加法简化硬件电路设计。1. 基础概念机器数二进制编码形式的数最高位为符号位0 表示正数1 表示负数其余为数值位。真值机器数对应的实际带正负号的数值。字长计算机一次处理的二进制位数以下均以 8 位字长举例。2. 原码规则正数符号位为 0数值位为真值的二进制负数符号位为 1数值位为真值绝对值的二进制示例 5 原码0000 0101-5 原码1000 0101特点直观但无法直接做减法且 0 有两种编码正 000000000负 010000000浪费资源。3. 反码规则正数反码 原码负数符号位不变数值位按位取反0 变 11 变 0示例 5 反码0000 0101-5 反码1111 1010特点0 仍有两种编码主要作为求补码的中间步骤。4. 补码计算机核心编码规则正数补码 原码 反码负数补码 反码 1末位加 1符号位保持不变示例 5 补码0000 0101-5 补码1111 1010 1 1111 1011补码转原码负数补码再做一次「取反加 1」即可得到原码。核心特点0 只有唯一编码00000000节省编码空间符号位可与数值位共同参与运算减法可完全转化为加法8 位补码表示范围-128 ~ 127比原码多表示一个负数 - 128其补码为10000000四、计算机的基本运算1. 二进制算术运算1加法运算规则0000111011110向高位进 1plaintext1011 1101 ------- 11000结果11000B 242减法补码实现计算机无专门减法电路所有减法都转化为补码加法 公式[A - B]补 [A]补 [-B]补示例8 位计算 8 - 5 8 的补码0000 1000-5 的补码1111 1011相加00001000 11111011 1 0000 0011丢弃最高位进位8 位自动截断结果00000011对应真值 3。3乘法与除法乘法本质是移位 加法从乘数最低位开始为 1 则累加被乘数为 0 则加 0每处理一位被乘数左移一位。除法本质是移位 减法用补码减法实现常用恢复余数法核心是余数左移后减去除数根据结果正负判断商位。2. 逻辑运算按位独立无进位 / 借位逻辑运算针对每一位独立执行位与位之间互不影响无进位和借位。表格运算类型运算符规则示例1011 1101常见用途与AND全 1 出 1有 0 出 01001清零特定位、提取指定位或OR|有 1 出 1全 0 出 01111置 1 特定位非NOT~按位取反0 变 1、1 变 0~1011 0100翻转所有位异或XOR^相同为 0不同为 10110交换变量、翻转特定位、判等3. 移位运算1逻辑移位无符号数逻辑左移整体左移低位补 0高位丢弃左移 1 位等价于 ×2逻辑右移整体右移高位补 0低位丢弃右移 1 位等价于 ÷22算术移位有符号补码数算术左移符号位不变数值位左移低位补 0等价于 ×2符号位与次高位不同时会发生溢出。算术右移符号位不变高位补符号位低位丢弃等价于 ÷2向下取整。 示例补码11111011-5算术右移 1 位 →11111101-33循环移位移出的位补到另一端分为带进位和不带进位两种常用于数据加密、校验计算。

相关新闻