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

进制定义与转换详解

文章目录

  • 📘 进制定义与转换详解
    • 一、进制的含义
    • 二、常见进制介绍
      • 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.xdnf.cn/news/16279.html

相关文章:

  • vcpkg如何交叉编译
  • HCLP--MGER综合实验
  • 数据结构习题--删除排序数组中的重复项
  • 详解力扣高频SQL50题之1084. 销售分析 III【简单】
  • Python点阵字生成与优化:从基础实现到高级渲染技术
  • 数据恢复与备份
  • 快速入门Linux操作系统(一)
  • 立式加工中心X-Y轴传动机械结构设“cad【6张】三维图+设计说明书
  • 进阶数据结构:用红黑树实现封装map和set
  • 学习嵌入式的第三十一天-数据结构-(2025.7.23)网络协议封装
  • 数据中心-时序数据库InfluxDB
  • 掌握Gemini-2.5:现代AI开发中实用应用的综合指南
  • 二次函数图像动画展示
  • 在Power Automate Desktop中执行PowerShell获取SharePoint online某个文件夹的用户权限列表
  • excel删除重复项场景
  • 算法竞赛阶段二-数据结构(35)数据结构单链表模拟实现
  • Node.js 模拟 Linux 环境
  • 【每天一个知识点】GAN(生成对抗网络,Generative Adversarial Network)
  • Whisper语音转文字
  • 【洛谷】单向链表、队列安排、约瑟夫问题(list相关算法题)
  • 互联网应用主流框架整合 Spring Boot开发
  • Linux DNS 服务器正反向解析
  • 【IMMCKF】基于容积卡尔曼滤波(CKF)的多模型交互的定位程序,模型为CV和CT,三维环境,matlab代码|附下载链接
  • Nestjs框架: 基于Mongodb的多租户功能集成和优化
  • 算子推理是什么
  • 电脑开机后网络连接慢?
  • (Python)文件储存的认识,文件路径(文件储存基础教程)(Windows系统文件路径)(基础教程)
  • 【17】C# 窗体应用WinForm ——【文本框TextBox、富文本框RichTextBox 】属性、方法、实例应用
  • C++:list(2)list的模拟实现
  • Java中配置两个r2db连接不同的数据库