当前位置: 首页 > news >正文

进制定义与转换详解

文章目录

  • 📘 进制定义与转换详解
    • 一、进制的含义
    • 二、常见进制介绍
      • 1. 十进制(Decimal,Base-10)
      • 2. 二进制(Binary,Base-2)
      • 3. 八进制(Octal,Base-8)
      • 4. 十六进制(Hexadecimal,Base-16)
    • 三、进制之间的转换
      • 1. 任意进制 → 十进制
        • 通用公式:
        • 示例:
      • 2. 十进制 → 任意进制
        • 方法:除基取余法(从下往上读)
          • 示例:十进制 `123` → 二进制
          • 示例:十进制 `100` → 八进制
          • 示例:十进制 `123` → 十六进制
      • 3. 二进制与其他进制的快速转换
        • a. 二进制 → 八进制
          • 示例:
        • b. 二进制 → 十六进制
          • 示例:
    • 四、负数的表示(以二进制为例)
      • 步骤:
        • 示例:-100 的二进制表示
    • 五、总结
  • 进制加减法
      • 进制基础与加减法运算规则
        • 一、二进制(Binary)
        • 二、八进制(Octal)
        • 三、十进制(Decimal)
        • 四、十六进制(Hexadecimal)
      • 总结
    • 进制对照表

📘 进制定义与转换详解

一、进制的含义

进制,也称为进位计数制,是一种人为定义的、带进位的计数方法。每种进制都有其基数(Base),表示该进制下使用的不同数字个数。

  • X进制:每一位上的数字运算时都是逢X进一
    • 十进制:逢十进一
    • 二进制:逢二进一
    • 八进制:逢八进一
    • 十六进制:逢十六进一
    • ……

💡 小知识:也有不带进位的计数法,如“正”字计数、结绳记事等,但进制是现代数学和计算机中广泛使用的标准计数方式。


二、常见进制介绍

1. 十进制(Decimal,Base-10)

  • 基数:10
  • 符号:0 ~ 9
  • 权重:10的幂次方
  • 示例
    1234=1×103+2×102+3×101+4×1001234 = 1 \times 10^3 + 2 \times 10^2 + 3 \times 10^1 + 4 \times 10^0 1234=1×103+2×102+3×101+4×100

2. 二进制(Binary,Base-2)

  • 基数:2
  • 符号:0、1
  • 权重:2的幂次方
  • 用途:计算机底层表示数据的基本单位(0表示关,1表示开)
  • 示例
    1002=1×22+0×21+0×20=410100_2 = 1 \times 2^2 + 0 \times 2^1 + 0 \times 2^0 = 4_{10} 1002=1×22+0×21+0×20=410
  • 表示方式:前缀 0B
    int val = 0B100;  // 表示十进制4
    

3. 八进制(Octal,Base-8)

  • 基数:8
  • 符号:0 ~ 7
  • 权重:8的幂次方
  • 用途:早期计算机系统中常用,每个八进制位对应3个二进制位
  • 示例
    1238=1×82+2×81+3×80=8310123_8 = 1 \times 8^2 + 2 \times 8^1 + 3 \times 8^0 = 83_{10} 1238=1×82+2×81+3×80=8310
  • 表示方式:前缀 0
    int val = 0123;  // 表示十进制83
    

4. 十六进制(Hexadecimal,Base-16)

  • 基数:16
  • 符号:0 ~ 9 和 A ~ F(或 a ~ f),其中:
    • A = 10,B = 11,C = 12,D = 13,E = 14,F = 15
  • 权重:16的幂次方
  • 用途:常用于内存地址、颜色编码等,每个十六进制位对应4个二进制位
  • 示例
    1a2b3c16=1×165+10×164+2×163+11×162+3×161+12×160=1715004101a2b3c_{16} = 1 \times 16^5 + 10 \times 16^4 + 2 \times 16^3 + 11 \times 16^2 + 3 \times 16^1 + 12 \times 16^0 = 1715004_{10} 1a2b3c16=1×165+10×164+2×163+11×162+3×161+12×160=171500410
  • 表示方式:前缀 0x
    int val = 0x1a2b3c;  // 表示十进制1715004
    

三、进制之间的转换

1. 任意进制 → 十进制

通用公式:

设某进制数为 xyzw...N,其十进制值为:

Value=x×Bn−1+y×Bn−2+z×Bn−3+⋯+N×B0\text{Value} = x \times B^{n-1} + y \times B^{n-2} + z \times B^{n-3} + \cdots + N \times B^0 Value=x×Bn1+y×Bn2+z×Bn3++N×B0

其中:

  • $ B $:进制基数
  • $ n $:数字位数
示例:
  • 二进制 0B100
    1×22+0×21+0×20=41 \times 2^2 + 0 \times 2^1 + 0 \times 2^0 = 4 1×22+0×21+0×20=4

  • 八进制 0123
    1×82+2×81+3×80=831 \times 8^2 + 2 \times 8^1 + 3 \times 8^0 = 83 1×82+2×81+3×80=83

  • 十六进制 0x1a2b3c
    1×165+10×164+2×163+11×162+3×161+12×160=17150041 \times 16^5 + 10 \times 16^4 + 2 \times 16^3 + 11 \times 16^2 + 3 \times 16^1 + 12 \times 16^0 = 1715004 1×165+10×164+2×163+11×162+3×161+12×160=1715004


2. 十进制 → 任意进制

方法:除基取余法(从下往上读)

在这里插入图片描述
在这里插入图片描述

示例:十进制 123 → 二进制
123 ÷ 2 = 61 余 1
61  ÷ 2 = 30 余 1
30  ÷ 2 = 15 余 0
15  ÷ 2 = 7  余 1
7   ÷ 2 = 3  余 1
3   ÷ 2 = 1  余 1
1   ÷ 2 = 0  余 1

从下往上读取余数:1111011,补全为8位:0B01111011

示例:十进制 100 → 八进制
100 ÷ 8 = 12 余 4
12  ÷ 8 = 1  余 4
1   ÷ 8 = 0  余 1

结果:0144

示例:十进制 123 → 十六进制
123 ÷ 16 = 7 余 11(B)
7   ÷ 16 = 0 余 7

结果:0x7b


3. 二进制与其他进制的快速转换

a. 二进制 → 八进制
  • 原理:3位二进制 = 1位八进制(因为 23=82^3 = 823=8
  • 方法:从右往左每3位一组,不足补0,每组转为八进制数
示例:
二进制:0B10100101011110011
分组:101 001 010 111 100 11(补0 → 011)
转换:5   1   2   7   4   3
结果:0512743

在这里插入图片描述

b. 二进制 → 十六进制
  • 原理:4位二进制 = 1位十六进制(因为 24=162^4 = 1624=16
  • 方法:从右往左每4位一组,不足补0,每组转为十六进制数
示例:
二进制:0B00010101001010101010
分组:0001 0101 0010 1010 1010
转换:1    5    2    A    A
结果:0x152AA

在这里插入图片描述


四、负数的表示(以二进制为例)

在计算机中,负数使用补码表示。

步骤:

  1. 求原码:正数的二进制表示
  2. 求反码:按位取反(符号位不变)
  3. 求补码:反码 + 1
示例:-100 的二进制表示
  1. 原码:100 = 01100100(假设8位)
  2. 反码:10011011
  3. 补码:10011100

所以,-100 的二进制补码表示为:0B10011100


五、总结

进制基数符号范围表示前缀特点
十进制100~9日常使用
二进制20,10B计算机基础
八进制80~70简化二进制
十六进制160~9, A~F0x内存地址、颜色代码

进制加减法

以下是对进制加减法相关内容的优化叙述,逻辑更清晰、结构更严谨:


进制基础与加减法运算规则

在计算机科学和编程中,理解不同进制及其运算规则是非常重要的基础知识。常见的进制包括二进制、八进制、十进制和十六进制。它们的核心区别在于所使用的数字范围和进位规则。


一、二进制(Binary)
  • 表示方式:使用两个数字 01 来表示数值。
  • 应用场景:计算机内部所有数据都以二进制形式存储和处理。
  • 加法规则:逢二进一。
    例如:1 + 1 = 10
  • 减法规则:借一当二。
    例如:10 - 1 = 1

在这里插入图片描述
在这里插入图片描述


二、八进制(Octal)
  • 表示方式:使用八个数字 07 来表示数值。
  • 加法规则:逢八进一。
    例如:7 + 1 = 10
  • 减法规则:借一当八。
    例如:10 - 1 = 7

在这里插入图片描述
在这里插入图片描述


三、十进制(Decimal)
  • 表示方式:使用十个数字 09 来表示数值。
  • 加法规则:逢十进一。
  • 减法规则:借一当十。

四、十六进制(Hexadecimal)
  • 表示方式:使用数字 09 和字母 AF 来表示数值。
    其中:
    • A = 10
    • B = 11
    • C = 12
    • D = 13
    • E = 14
    • F = 15
  • 字母说明:不区分大小写,ABCDEF 也可以写作 abcdef
  • 加法规则:逢十六进一。
    例如:F + 1 = 10
  • 减法规则:借一当十六。
    例如:10 - 1 = F

在这里插入图片描述
在这里插入图片描述


总结

不同进制的加减法遵循相同的逻辑:

  • 加法:当前位满“基数”就向前一位进一;
  • 减法:当前位不够减时,向高位借一,相当于借了“基数”。

掌握这些规则,有助于理解数据在计算机中的表示和处理方式,是学习编程和计算机系统的重要基础。

进制对照表

在这里插入图片描述

http://www.dtcms.com/a/299929.html

相关文章:

  • 1.Java发展简史与设计哲学
  • 最优估计准则与方法(5)加权最小二乘估计(WLS)_学习笔记
  • 360° 外壁镜头:小物体环外侧检测的创新突破
  • Python day25
  • MySQL中的 redolog
  • 连锁店铺巡查二维码的应用
  • 单片机CPU内部的定时器——滴答定时器
  • 智慧水库边缘计算技术路线与框架设计
  • 21-ospf多区域
  • Python编程:初入Python魔法世界
  • Java 面向对象之方法与方法重载:从基础到实践
  • Go 多模块仓库标签管理教程
  • 详解Aerospike数据库在Linux系统上的安装流程
  • LLM中 词嵌入向量中的正负值表示什么含义
  • Aerospike与Redis深度对比:从架构到性能的全方位解析
  • 【HTML】<script>元素中的 defer 和 async 属性详解
  • 认识泛型、泛型类和泛型接口
  • 服务器生成图片
  • 力扣872. 叶子相似的树
  • Ubuntu系统安装EasyTier组网
  • rt-thread 5.2.1 基于at-start-f437开发过程记录
  • Flutter开发 BUG 记录 (持续更新)
  • [特殊字符] 嵌入式队列精要指南:数据流的艺术与实战
  • Python爬虫实战:研究furl库相关技术
  • 阿里开源Qwen3-Coder,编程大模型进入高效时代
  • 文件操作认识
  • 差模干扰 共模干扰
  • QUIC协议如何在UDP基础上解决网络切换问题
  • PCIe 的L状态(链路状态)和D状态(设备状态)
  • 命令行创建 UV 环境及本地化实战演示—— 基于《Python 多版本与开发环境治理架构设计》的最佳实践