03 进制转换详解

二进制转十六进制的详细步骤

一、进制转换详解

1. 二进制(Binary)↔ 十六进制(Hexadecimal)

核心逻辑:利用十六进制与二进制的天然对应关系(1 位十六进制 = 4 位二进制)。

二进制转十六进制
  • 步骤
    1. 从右往左将二进制数每 4 位 分组,不足 4 位时在左侧补 0
    2. 每组转换为对应的十六进制数(0-9对应0-910-15对应A-F)。
  • 示例
    • 二进制 10110101 → 分组为 1011 0101 → 十六进制 B5
    • 二进制 00001111 → 分组为 0000 1111 → 十六进制 0F
十六进制转二进制
  • 步骤
    1. 每位十六进制数转换为对应的 4 位二进制数(不足 4 位补前导0)。
    2. 合并所有二进制组。
  • 示例
    • 十六进制 3A → 30011A1010 → 二进制 00111010
    • 十六进制 FF → F1111F1111 → 二进制 11111111

2. 二进制(Binary)↔ 十进制(Decimal)

核心逻辑:二进制按权展开,十进制通过除法取余。

二进制转十进制
  • 步骤: 从右往左,每位二进制数乘以 2^nn为从 0 开始的位数索引),求和。
  • 公式
03 进制转换详解
  • 示例
    • 二进制 1011 → 1×2^3 + 0×2^2 + 1×2^1 + 1×2^0 = 8+0+2+1=11
十进制转二进制
  • 步骤
    1. 用十进制数除以 2,记录余数(必为01)。
    2. 重复除以2,直到商为0
    3. 余数逆序排列即为二进制数。
  • 示例
    • 十进制 23 → 除以 2 的余数序列:1, 1, 1, 0, 1(逆序后为 10111)。

3. 二进制(Binary)↔ 八进制(Octal)

核心逻辑:八进制与二进制的对应关系(1 位八进制 = 3 位二进制)。

二进制转八进制
  • 步骤
    1. 从右往左将二进制数每 3 位 分组,不足 3 位时在左侧补 0
    2. 每组转换为对应的八进制数(0-7)。
  • 示例
    • 二进制 1101011 → 分组为 011 010 11(补零为 001 101 011)→ 八进制 153
八进制转二进制
  • 步骤
    1. 每位八进制数转换为对应的 3 位二进制数(不足 3 位补前导0)。
    2. 合并所有二进制组。
  • 示例
    • 八进制 72 → 71112010 → 二进制 111010

4. 其他进制转换(间接法)

  • 十六进制 ↔ 十进制
    • 十六进制转十进制:按权展开(每位乘以 16^n)。 例:0x2A = 2×16^1 + 10×16^0 = 42
    • 十进制转十六进制:除以 16 取余,余数10-15对应A-F。 例:42 ÷ 16 = 210 → 十六进制 2A
  • 八进制 ↔ 十进制
    • 八进制转十进制:按权展开(每位乘以 8^n)。 例:075 = 7×8^1 + 5×8^0 = 61
    • 十进制转八进制:除以 8 取余。 例:61 ÷ 8 = 75 → 八进制 75

二、各进制应用场景

1. 二进制(Base 2)

  • 特点:仅用01,计算机底层物理实现简单(电路通断、电平高低)。
  • 应用场景
    • 计算机硬件(CPU 指令、内存存储)。
    • 逻辑运算(布尔代数、位操作)。
    • 通信协议(如 USB、以太网的底层信号)。
  • 缺点:位数长,人类可读性差,需借助十六进制 / 八进制简化。

2. 十六进制(Base 16)

  • 特点:1 位对应 4 位二进制,压缩二进制长度,便于书写和记忆。
  • 应用场景
    • 编程(内存地址、变量地址,如0x7FFFFFFF表示整数最大值)。
    • 颜色表示(如#FF0000代表红色,每两位对应 RGB 的一个分量)。
    • 固件开发(二进制文件的十六进制转储,如.hex文件)。
    • 加密 / 哈希(如 MD5、SHA 的结果以十六进制显示)。

3. 十进制(Base 10)

  • 特点:人类习惯的进制,符合十进制计数法。
  • 应用场景
    • 日常生活(货币、时间、数量)。
    • 非计算机领域的数学运算(如财务、科学计算)。
    • 程序中的输入输出(如用户输入的数字、打印结果)。

4. 八进制(Base 8)

  • 特点:1 位对应 3 位二进制,早期用于简化二进制表示(现已逐渐被十六进制取代)。
  • 应用场景
    • Unix/Linux 系统的文件权限(如755表示读、写、执行权限)。
    • 早期计算机系统(如 PDP-8,地址总线为 12 位,可表示为 4 位八进制数)。
    • 部分嵌入式系统的配置参数(少数保留场景)。

三、总结对比

进制基数核心用途转换关键技巧
二进制2计算机底层、逻辑运算分组(4 位→十六进制,3 位→八进制)
十六进制16简化二进制、内存地址、颜色码每位拆 / 合 4 位二进制
十进制10人类日常交互、非底层运算除基取余、按权展开
八进制8历史遗留系统、文件权限每位拆 / 合 3 位二进制

通过理解进制转换的规律和应用场景,可在编程、硬件开发、系统配置等场景中灵活切换进制,提升问题解决效率。

本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客

(0)
何大锤的头像何大锤管理团队

相关推荐

  • C语言初阶 – 指针

    一、指针是什么? 指针是什么? 指针理解的2个要点: 1、指针是内存中一个最小单元(内存单元)的编号,也就是地址 2、平时口语中说的指针,通常是指针变量,用来存放内存地址的变量 总结:指针就是地址,口语中说的指针通常指的是指针变量 那么我们就这样理解:内存 指针变量 我们可以通过&(取地址操作符)取出变量的内存地址,把地址可以存放到一个变量中,这个变…

    2025年6月29日
    000
  • 09 通讯录管理系统

    通讯录管理系统 1、系统需求 通讯录是一个可以记录亲人、好友信息的工具。 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 2、创建项目 创建项目步骤如下: 2.1 创建项目 打开vs2017后,点击创建新项目,创建新的C++项目 填写项目名称,选择项目路径 2.2添加文件 添加成功后,效果如图: 至此,项目已创建完毕 3、菜单功能 …

    2025年6月22日
    300
  • 08 结构体

    8 结构体 8.1 结构体基本概念 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型 8.2 结构体定义和使用 语法:struct 结构体名 { 结构体成员列表 }; 通过结构体创建变量的方式有三种: 示例: 总结1:定义结构体时的关键字是struct,不可省略 总结2:创建结构体变量时,关键字struct可以省略 总结3:结构体变量利用操作符 &…

    2025年6月21日
    300
  • 07 指针

    7.1 指针的基本概念 指针的作用: 可以通过指针间接访问内存 7.2 指针变量的定义和使用 指针变量定义语法: 数据类型 * 变量名; 示例: 指针变量和普通变量的区别 总结1: 我们可以通过 & 符号 获取变量的地址 总结2:利用指针可以记录地址 总结3:对指针变量解引用,可以操作指针指向的内存 7.3 指针所占内存空间 提问:指针也是种数据类型…

    2025年6月20日
    300
  • 第2章 C语言概述

    一、复习题 1、C语言的基本模块是什么? 它们都叫函数 2、什么是语法错误?写一个英语例子和C语言例子 3、什么是语义错误?写一个英语例子和C语言例子 4、Indiana Sloth编写了下面的程序,并征求你的意见。请帮助他评定 第一行没有加<> 赋值语句错误 函数错误应该是printf 花括号不齐全 二、编程练习 2.1 2.2 2.3 编写一…

    2025年6月20日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

2211932694

在线咨询: QQ交谈

邮件:hdcblog1999@163.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
网站建设中ing......