不同进制数之间的相互转换(全面解析版)

目录

前言

1.不同进制的表示方法

2.不同进制之间的对照

 3.二进制数转换为其他进制数

3.1二进制数转换为八进制数

3.2任意进制数转换为十进制数

3.3二进制数转换为十六进制数

4.其他进制数转换为二进制数

4.1八进制数转换为二进制数

4.2十进制数转换为任意进制数

4.3十六进制数转换为二进制数

总结


前言

十六进制:(简写为 hex 或下标 16)是一种基数为 16 的计数系统,是一种逢 16 进 1 的进位制。通常用数字 0、1、2、3、4、5、6、7、8、9 和字母 A、B、C、D、E、F(a、b、c、d、e、f)表示,其中: A~F 表示 10~15,这些称作十六进制数字。

十进制数:是组成以10为基础的数字系统,有 0,1,2,3, 4, 5, 6, 7, 8, 9 十个基本数字组成。十进制,英文名称为 Decimal System,来源于希腊文 Decem,意为十。十进制计数是由印度教教徒在 1500 年前发明的,由阿拉伯人传承至 11 世纪。

八进制:Octal,缩写 OCT 或 O,一种以 8 为基数的计数法,采用 0,1,2,3,4,5,6,7 八个数字,逢八进 1。一些编程语言中常常以数字 0 开始表明该数字是八进制。八进制的数和二进制数可以按位对应(八进制一位对应二进制三位),因此常应用在计算机语言中。

二进制:是计算技术中广泛采用的一种数制。 二进制数据是用 0 和 1 两个数码来表示的数。 它的基数为2,进位规则是"逢二进一",借位规则是"借一当二"。 二进制数(binaries)是逢2进位的进位制,0、1是基本算符 ;计算机运算基础采用二进制。

1.不同进制的表示方法

进制范围前缀后缀

二进制(Binary)

0~10b/0Bb/B
八进制(Octal)0~70o/O
十进制(Decimal)0~9无,可加+/-d/D
十六进制(Hexadecimal)0~9;A~F(10~15)0x/0Xh/H

例如:

进制前缀表示法后缀表示法

二进制

0b1000000000010000000000B
八进制020002000O
十进制10241024D(后缀可加可不加)
十六进制0x400400H

注意事项

  1. 十六进制中的A~F分别表示数字10~15;
  2. 在十六进制表示法中,字母"A~F"可以用大写或小写字母来表示。
  3. 对于大部分编程语言和计算机系统来说,习惯上使用大写字母来表示十六进制中的"A~F",但也可以使用小写字母"a~f"来表示。两者都是有效的,但需要注意保持一致以避免混淆。
  4. 在写代码的时候,不同的语言甚至是于不同的编程软件对前后缀的识别可能有所不同,C/C++一般使用前缀表示,后缀书写可能出现报错;

2.不同进制之间的对照

 3.二进制数转换为其他进制数

3.1二进制数转换为八进制数

  1. 对于一个二进制混合数(既包含整数部分,又包含小数部分),在转换时应以小数点为界。
  2. 其整数部分,从小数点开始往左数,将一串二进制数分为3位(八进制)一组,在数的最左边可根据需要加“0”补齐;
  3. 对于小数部分,从小数点开始往右数,也将一串二进制数分为 3 位一组,在数的最右边也可根据需要加“0”补齐。
  4. 最终使总的位数为3的整数倍,然后分别用对应的八进制数取代。

【例】

2⁸2⁷2⁶2⁵2⁴2⁰
2561286432168421

将每一组的三位分别对照上面这个表格相加得出数值,拼接一起即可,这样说可能不太明白,我列举个表格供大家参考:

二进制对照表计算过程结果
2561286432168421
00111
1111+1×2+1×47
00000
0101×22
.....
0111×1+1×23
0101×22

然后从上往下写就是结果(1702.32)₈;可能我叙述的比较麻烦,但是当你写起来是很简单的,我只是叙述的比较清楚,实际上以上的步骤心算即可;

3.2任意进制数转换为十进制数

按权展开相加法 (这种方式适用于任意进制数转换为十进制数)

将任意进制数的各位数码与它们的权值相乘,再把乘积相加,就得到了一个十进制数。这种方法称为按权展开相加法

【例】:(任意进制数转换为十进制数)

(11011.1)₂ = 1×2⁴ + 1×2³ + 0×2² + 1×2¹ + 1×2⁰ + 1×2⁻¹ = 27.5

(11011.1)₈ = 1×8⁴ + 1×8³ + 0×8² + 1×8¹ + 1×8⁰ + 1×8⁻¹ = 4617.125

(11011.1)₁₆ = 1×16⁴ + 1×16³ + 0×16² + 1×16¹ + 1×16⁰ + 1×16⁻¹ = 69649.0625 

3.3二进制数转换为十六进制数

  1. 对于一个二进制混合数(既包含整数部分,又包含小数部分),在转换时应以小数点为界。
  2. 其整数部分,从小数点开始往左数,将一串二进制数分为 4 位(十六进制)一组,在数的最左边可根据需要加“0”补齐;
  3. 对于小数部分,从小数点开始往右数,也将一串二进制数分为 4 位一组,在数的最右边也可根据需要加“0”补齐。
  4. 最终使总的位数为 4 的整数倍,然后分别用对应的十六进制数取代。

 二进制数转换为十六进制数跟转换为八进制的做法基本上一模一样,唯一的区别在于,十六进制是以4位一组;

二进制对照表计算过程结果
2561286432168421
00111×1+1×23
11001×8+1×412(C)
00101×22
......
01101×4+1×26
10001×88

然后从上往下写就是(3C2.68)₁₆ ;注意十六进制的特性,结果中的12不要直接写成12,为了与10进制区分,一定要写成其对应的字母

4.其他进制数转换为二进制数

4.1八进制数转换为二进制数

八进制数转换为二进制数有两种方法可用;

方法一:连续转换法;

将八进制数使用按权展开相加法转换为十进制数,然后再由十进制数转化为二进制数

方法二:倒推法;

根据二进制数转换为八进制数,反推八进制数转换为二进制数;

【例】:

求八进制 24.24 的二进制数:

结果二进制对照表
2561286432168421
2010
4100
....
2010
4100

 将得到的二进制位从上向下拼接即可:(24.24)₈ = (10100.0101)₂

4.2十进制数转换为任意进制数

一个十进制数转换为任意进制数,通常采用基数乘除法

这种转换方法对十进制数的整数部分和小数部分将分别进行处理,对整数部分采用除基取余法,对小数部分采用乘基取整法,最后将整数部分与小数部分的转换结果拼接起来。

】:将十进制数 123.6875 转换成二进制数。

除基取余法(整数部分):整数部分除基取余,最先取得的余数为数的最低位,最后取得的余数为数的最高位(即除基取余,先余为低,后余为高),商为0时结束。

整数部分:

因此整数部分 123=(1111011)₂。

乘基取整法(小数部分):小数部分乘基取整,最先取得的整数为数的最高位,最后取得的整数为数的最低位(即乘基取整,先整为高,后整为低),乘积为1.0(或满足精度要求)时结束。

小数部分:

 因此小数部分 0.6875=(0.1011)₂,所以 123.6875=(1111011.1011)₂。

4.3十六进制数转换为二进制数

十六进制数转换为二进制数有两种方法可用;

方法一:连续转换法;

将十六进制数使用按权展开相加法转换为十进制数,然后再由十进制数转化为二进制数

方法二:倒推法;

根据二进制数转换为十六进制数,反推十六进制数转换为二进制数;

【例】:

求十六进制 24.24 的二进制数:

结果二进制对照表
2561286432168421
20010
40100
....
20010
40100

将得到的二进制位从上向下拼接即可:(24.24)₁₆= (100100.001001)₂

总结

  1. 使用进制前后缀可以帮助我们更清楚地理解数字的表示方式,避免混淆不同进制数的意义。
  2. 同时在计算机编程中,前后缀也有助于指示数字表示的进制,从而避免错误或误解。
  3. 关于十进制数转换为任意进制数为何采用除基取余法乘基取整法,以及所取之数放置位置的原理,请结合 r 进制数的数值表示公式思考,而不应死记硬背。
  4. 在计算机中,小数和整数不一样,整数可以连续表示,但小数是离散的,所以并不是每个十进制小数都可以准确地用二进制表示。例如 0.3,无论经过多少次乘二取整转换都无法得到精确的结果。但任意一个二进制小数都可以用十进制小数表示,希望读者引起重视。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/704878.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ESP-IDF OTA升级过程中遇到的“esp_transport_read returned:-1 and errno:128”问题(1)

在笔者“ESP32-C3模组上跑通OTA升级”系列文章中,经过了一番“踩坑填坑”的过程,最终实现了OTA升级功能。每次升级都能够成功,比较稳定。 但是,当笔者添加大量业务代码(如使能蓝牙配置),使得固件的大小由之前的200~300K字节变为1.5~1.6M字节后,再次执行升级时(同样的…

x64-linux下在vscode使用vcpkg

1.使用vscode远程连接上对应的linux ,或者直接在图形化界面上使用。 2.安装vcpkg 插件,然后打开插件设置。 注意:defalut和host的主机一定和你自己的主机一致,且必须符合vcpkg三元组格式,其中你可以选择工作台的设置&a…

编写函数isprime(int a),用来判断自变量a是否为素数,若是素数,函数返回整数1,否则返回0

int main() {int isprime(int x);int x;printf("请输入一个数\n");scanf("%d", &x);if (isprime(x)){printf("%d是素数\n",x);}else{printf("%d不是素数\n",x);} } int isprime(int a) {int i;for (i 2; i < a / 2; i){if (a%…

法考报名必看,99%高过审率证件照片电子版制作技巧

在2024年&#xff0c;法考备战已经如火如荼进行中&#xff0c;作为进入法律行业的第一步&#xff0c;参加法考的重要性不言而喻。而作为报名过程中必不可少的一环&#xff0c;报名照片要求以及证件照制作技巧更是需要我们特别重视的部分。想要在这个过程中顺利通过审核&#xf…

vue3中用setup写的数据,不能动态渲染(非响应式)解决办法

相比于2.0&#xff0c;vue3.0在新增了一个setup函数&#xff0c;我们在setup中可以写数据也可以写方法&#xff0c;就像我们以前最开始学习js一样&#xff0c;在js文件中写代码。 For instance <template><div class"person"><h2>姓名&#xff1…

必刷!!软考【系统分析师】100道高频考题(含知识点解析),轻松45+

2024上软考已经圆满结束&#xff0c;距离下半年的考试也只剩下半年不到的时间。需要备考下半年软考系分的小伙伴们可以抓紧开始准备了&#xff0c;毕竟高级科目的难度可是不低的。 今天给大家整理了——系统分析师100道高频考题 &#xff0c;都是核心重点&#xff0c;有PDF&…

音频处理1_基本概念

AI变声和音乐创作的基础 声音本质上是人类可察觉范围内的气压周期性波动, 即声波 声波是一种连续信号&#xff0c;在任意时间内的声音信号有无数个取值。对于只能读取有限长数组计算机来说&#xff0c;我们需要将连续的声音信号转换为一个离散的序列&#xff0c;即数字化表示。…

ssm情侣购物系统-计算机毕业设计源码02387

目 录 摘要 1 绪论 1.1 开发背景与意义 1.2开发意义 1.3Vue.js 主要功能 1.3论文结构与章节安排 2 情侣购物系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分…

电脑蓝屏怎么办?7个方法为你解决问题!

“我今天开电脑时&#xff0c;不知道为什么电脑突然就蓝屏了。大家有什么方法可以解决电脑蓝屏问题吗&#xff1f;” 在现代社会的快节奏中&#xff0c;电脑已经成为了我们工作和生活的重要伙伴。然而&#xff0c;当这个“伙伴”突然展现出它的“任性”一面——蓝屏时&#xff…

idea插件开发之通过纯编码方式开发页面(不使用form ui)

写在前面 本文看线如何通过纯编码方式来定义页面。 1&#xff1a;正戏 我们首先来定义一个面板&#xff0c;需要继承抽象类&#xff1a;com.intellij.openapi.ui.SimpleToolWindowPanel&#xff0c;如下&#xff1a; public class MySelfDefinePanel extends SimpleToolWin…

【Python整蛊小代码】以及打包成.exe格式过程【踩坑,避坑】

一、项目介绍 该项目为一个Python写成的整蛊小代码&#xff0c;效果是不断弹出窗口&#xff0c;并显示图片和文字。并使用 项目大致效果&#xff1a; &#xff08;图片过于搞笑&#xff0c;不宜展示&#xff09; &#xff08;无侵犯肖像权&#xff0c;禁止商用&#xff09; …

优迅医学近10亿对赌协议今年到期,前五大客户收入波动剧烈

《港湾商业观察》廖紫雯 日前&#xff0c;优迅医学生物科技&#xff08;以下简称&#xff1a;优迅医学&#xff09;递表港交所&#xff0c;保荐机构为中金公司&#xff0c;优迅医学国内运营主体为北京优迅医学检验实验室有限公司。 作为一家以平台为基础的基因科技公司&#…

常见报错及程序框架图

程序框架图 程序流程图又称程序框图&#xff0c;是用统一规定的标准符号描述程序运行具体步骤的图形表示。程序框图的设计是在处理流程图的基础上&#xff0c;通过对输入输出数据和处理过程的详细分析&#xff0c;将计算机的主要运行步骤和内容标识出来。程序框图是进行程序设…

湖北省七普分乡、镇、街道数据,shp、excel格式 需要自取

数据名称: 湖北省七普分乡、镇、街道数据 数据格式: Shp、excel 数据几何类型: 面 数据坐标系: WGS84 数据时间&#xff1a;2020年 数据来源&#xff1a;网络公开数据 数据可视化.

1.Element的table表高度自适应vue3+js写法

解决方法 在页面table上添加id&#xff0c;动态计算每页table的最大高度 &#xff0c;将高度保存在store中&#xff0c;每次切换路由时进行计算。 文章目录 解决方法前言一、页面table使用二、store状态库1.引入库 效果 前言 提示&#xff1a;状态管理使用的是pinia,用法参考…

知识分享|个人查询大数据信用有哪些好处?

在当今数字化时代&#xff0c;个人信用评估已经成为金融、购物、租房等各个方面的关键因素。大数据技术的兴起为个人信用查询带来了新的可能性和好处。下面将探讨个人查询大数据信用的益处。 首先&#xff0c;个人查询大数据信用可以全面了解自己的信用状况 通过查询大数据信用…

LeetCode | 35.搜索插入位置

这套题可以直接遍历&#xff0c;找到第一个大于target的数并返回其位置即可&#xff0c;但是时间复杂度为 O ( n 2 ) O(n^2) O(n2)&#xff0c;题目中明确要求时间复杂度为 O ( l o g n ) O(logn) O(logn)&#xff0c;考虑二分查找算法&#xff0c;这道题就是标准的二分查找的一…

助力OTT大屏营销,酷开科技引领产业变革与创新

随着大屏电视产品的迭代&#xff0c;越来越多家庭以增换购等多种形式获得超高清、超大屏的智能电视&#xff0c;大屏的人均拥有量和渗透率进一步增加。在这种情况下&#xff0c;通过OTT应用为载体&#xff0c;将大量内容持续输送到大屏终端&#xff0c;从而形成了电视硬件普及与…

网格重构技术在AI绘画中的革新作用

引言&#xff1a; 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;艺术创作也迎来了前所未有的变革。AI绘画不仅改变了艺术家的创作方式&#xff0c;还为非专业人士开启了艺术创作的大门。在众多AI技术中&#xff0c;网格重构技术因其独特的作用和效果成为A…

解决el-table表格拖拽后,只改变了数据,表头没变的问题

先看看是不是你想要解决的问题 拖拽后表头不变的bug修复 这个问题一般是使用v-for对column的数据进行循环的时候&#xff0c;key值绑定的是个index导致的&#xff0c;请看我上篇文章&#xff1a;eleplus对el-table表格进行拖拽(使用sortablejs进行列拖拽和行拖拽)&#xff1a;-…