“进制转换”公式大集合

咱们都知道十进制是“逢10进1 ”,同理,N进制就是 “逢N进1”。进制其实就这么简单。它的麻烦之处在于各种进制之间的转换。

一、十进制整数转N进制

1.十进制转二进制

除2取余法:连续除以2,直到商为0,逆序排列余数。

例如十进制数57转为二进制数:

序号

被除数

余数

备注

1

57

28

1

57除以2得28余1

2

28

14

0

28除以2得14余0

3

14

7

0

14除以2得7余0

4

7

3

1

7除以2得3余1

5

3

1

1

3除以2得1余1

6

1

2

1

1除以2得0余1(商为0,结束)

逆序排列余数(从下往上)得到二进制数:111001B。

注意除2取余每次都是用上次的商作为被除数,即:取商除2取余。

2.十进制转二进制

十进制转N进制与转二进制算法如出一辙,即除n取余法。

比如把十进制数107转换成八进制:

107除以8等于13,余数是3;

13除以8等于1,余数是5;

1除以8等于0,余数是1。

把这些余数倒序排列,就是153,这就是十进制数107的八进制表示。

二、N进制整数转十进制数

1.二进制转十进制

按位权展开:各位数字乘以位权的和。

这是因为现行的计数方法都是采用“位值法(Positional Value Algorithm)”,它的特点是各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关。位置所代表的权重称为位权,简称权。

看似很高大上,但其实这种表示方法我们非常熟悉,比如:9527=9*1000+5*100+2*10+7。

上面算式中的1000、100、10、1就是位权,因此我们可以得到一个公式:数=∑数字*位权。

1000、100、10、1分别对应10^3、10^2、10^1、10^0,这下你看出门道没?底数代表进制,指数代表位置(从个位起向左依次为0、1、2、……)。

那么,你自然能联想到,二进制位权的底数就应该是2。

如二进制数111001.000B数字与位权的对应关系:

按位权展开求和即可得到对应的十进制数:

其实,本质上来说,位值法的位权表示的是倍数关系:每一位都是后一位的N倍。N就是指N进制,十进制就表示每一位是后一位的10倍,二进制就表示每一位是后一位的2倍。这其实就是位权展开法的原理。

2.N进制转十进制

其他进制数转十进制数同理,八进制数的位权是以8为底的幂,十六进制数的位权是以16为底的幂。位权的底数部分被称为“基数”,二进制的基数是2,十进制的基数是10,八进进制的基数是8,十六进制的基数是16。

比如8进制数字153,按位权展开求和为:

三、进制快捷转换

因2的3次方是8,所以二进制转为八进制时,可3个一组进行转换,每组内位权的指数编号重新从零开始计算。如111001B转为八进制数:

同理,由于2的4次方是16,二进制转十六进制时,可4个一组进行转换(优先满足右侧分组,因为最高位可以补零)​,如111001B转为十六进制数:

四、十进制小数转二进制数

与整数“除2取余法”的门道儿正相反,采用“乘2取整法”。

乘2取整法:用2乘十进制小数,将积的整数部分取出,再用2乘余下的小数部分,如此循环,将每步取出的整数部分顺序排列,即为小数的二进制。

例如,十进制数32.12转为二进制数:

整数部分32用除2取余得到二进制数为100000。

小数部分为0.12,用乘2取整法:

序号

乘2

取整

备注

1

0.12×2=0.24

0

2

0.24×2=0.48

0

3

0.48×2=0.96

0

4

0.96×2=1.92

1

取整后,后续运算因数变为1.92-1=0.92

5

0.92×2=1.84

1

取整后,后续运算因数变为1.84-1=0.84

6

0.84×2=1.68

1

取整后,后续运算因数变为1.68-1=0.68

7

注意乘2取整每次都是用上次积的小数部分作为乘数,即:取小乘2取整。

与整数不同的是,乘2取整可能会无限运算下去,需按题目精度要求截取足够位数。​

顺序排列(从上到下)取出整数,得到小数部分的二进制数为.000111。

故最终求得二进制小数:100000.000111。

总结:整数部分,除2取余、逆序排列;小数部分,乘2取整、顺序排列。

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

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

相关文章

线程-3-线程控制

线程资源共享 线程间绝大部分资源都是共享的(堆栈共享区) 线程间堆空间是共享的 谁拿着堆空间的入口地址,谁就能访问 共享区也是共享的(cout,printf库都在共享区) 线程间有权限访问/修改其他线程栈数据&…

1、ELK的架构和安装

ELK简介 elk:elasticsearch logstash kibana,统一日志收集系统。 elasticsearch:分布式的全文索引引擎的非关系数据库,json格式,在elk中存储所有的日志信息,架构有主和从,最少需要2台。 …

MetaRename for Mac,适用于 Mac 的文件批量重命名工具

在处理大量文件时,为每个文件手动重命名既耗时又容易出错。对于摄影师、设计师、开发人员等需要频繁处理和整理文件的专业人士来说,找到一款能够简化这一过程的工具是至关重要的。MetaRename for Mac 就是这样一款旨在提高工作效率的应用程序&#xff0c…

方正畅享全媒体新闻采编系统 imageProxy.do 任意文件读取漏洞复现

0x01 产品简介 方正畅享全媒体新闻生产系统是以内容资产为核心的智能化融合媒体业务平台,融合了报、网、端、微、自媒体分发平台等全渠道内容。该平台由协调指挥调度、数据资源聚合、融合生产、全渠道发布、智能传播分析、融合考核等多个平台组成,贯穿新闻生产策、采、编、发…

【Unity3d】C#浮点数丢失精度问题

一、float、double浮点数丢失精度问题 Unity3D研究院之被坑了的浮点数的精度(一百零三) | 雨松MOMO程序研究院 https://segmentfault.com/a/1190000041768195?sortnewest 浮点数丢失精度问题是由于大部分浮点数在IEEE754规范下就是无法准确以二进制…

Flink CDC 自定义函数处理 SQLServer XML类型数据 映射 doris json字段方案

Flink CDC 自定义函数处理 SQLServer XML类型数据方案 1. 背景 因业务使用SQLServer数据库,CDC同步到doris 数仓。对于SQLServer xml类型,doris没有相应的字段对应, 可以使用json来存储xml数据。需要进行一步转换。从 flink 自定义函数入手…

详解云桌面3种主流架构

本文简要介绍下云桌面(云电脑)的3种主流架构:VDI、IDV和VOI,概念、原理和区别,欢迎阅读。 云桌面作为桌面办公和云计算融合发展的产物,在一定程度上替代了传统的办公形式。目前阿里云、华为云、移动云、电…

按照人们阅读Excel习惯来格式化BigDecimal

1、环境/问题描述 使用springboot发送邮件(附件)的方式将月度报表发送给领导查阅,数据是准确的,领导基本满意。 就是对一些数字的格式化提出了改进建议,比如不要让大数字自动转为科学计数法、浮点数小数点后都是0就不要带出来,根…

深入解析:谱分解、SVD与PCA在算法中的应用与实现

特征值分解(EVD)、奇异值分解(SVD)和主成分分析(PCA)是矩阵分解技术的三种重要形式,它们在人工智能中扮演了关键角色。随着数据维度的快速增长和信息复杂度的提升,这些技术为处理高维…

连接Milvus

连接到Milvus 验证Milvus服务器正在侦听哪个本地端口。将容器名称替换为您自己的名称。 docker port milvus-standalone 19530/tcp docker port milvus-standalone 2379/tcp docker port milvus-standalone 192.168.1.242:9091/api/v1/health 使用浏览器访问连接地址htt…

记录一个我在idea启动时的报错

这几天我的idea突然就不能用了我就想着下一个新的,但是却一直报错报错内容如下 这个是我在网上截的pycharm的。 我在网上查了很多方法都不能用,今天重写安装发现我点了关联.java 和.pom和创建环境变量 这几个只需要创建一个快捷方式就行。我重新安装之…

使用maven-mvnd替换maven大大提升编译打包速度

先上结论!!! 多模块清理并打包提升:约3.5倍 多模块不清理打包提升:约5.5倍 单模块提升:约2倍 从计算结果来看,多模块提升的效率更高。在使用mvnd package打包多模块式,可在控制台…

【从零开始入门unity游戏开发之——C#篇43】C#补充知识——值类型和引用类型汇总补充、变量的生命周期与性能优化、值类型和引用类型组合使用

文章目录 一、值类型和引用类型汇总补充1、值类型和引用类型汇总2、值类型和引用类型的区别3、简单的判断值类型和引用类型 二、变量的生命周期与性能优化1、**栈和堆的区别**2、**变量生命周期**3、**垃圾回收(GC)机制**4、**代码示例与优化**4.1. 临时…

65.基于SpringBoot + Vue实现的前后端分离-阿博图书馆管理系统(项目 + 论文PPT)

项目介绍 随着社会的发展,计算机的优势和普及使得阿博图书馆管理系统的开发成为必需。阿博图书馆管理系统主要是借助计算机,通过对图书借阅等信息进行管理。减少管理员的工作,同时也方便广大用户对所需图书借阅信息的及时查询以及管理。 本站…

系统报错:由于找不到msvcp140.dll msvcp140_1.dll无法继续执行问题解决

Java资深小白,不足之处,或者有任何错误欢迎指出。 --蓝紫电脑重装后安装mysql,在执行时mysqld -install时出现系统报错:由于找不到msvcp140.dll无法继续执行、由于找不到msvcp140_1.dll无法继续执行。 尝试了其他博主提出的解决方案要么无效…

【再谈设计模式】策略模式 ~ 算法与行为的灵活调度员

本章内容思维导图: ​ 一、引言 在软件工程,软件开发过程中,我们常常会遇到这样的情况:需要根据不同的条件或者用户输入来执行不同的算法或者操作流程。例如,在一个电商系统中,根据用户的会员等级&#xff…

019-spring-基于aop的事务控制原理

1、事务配置&#xff1a; <tx:annotation-driven transaction-manager"transactionManager"/> transaction-manager 默认是找这个bean&#xff1a;transactionManager 2、从命名空间开始找到对应的解析配置如下&#xff1a; 对应的是这个 后续跟源码没有搞明…

Cursor登录按钮点击没反应

问题 系统&#xff1a;Windows11 Cursor&#xff1a;Cursor 0.44.9 当安装Cursor打开进行登录时&#xff0c;点击Sign in没反应 解决方案 1.打开window11的设置 2.点击应用中的默认应用 3.在设置应用程序的默认值中搜索Google&#xff08;没有Google浏览器的尝试下载一个&a…

30分钟搭建 Typecho 个人博客教程

Typecho是一款PHP博客程序&#xff0c;相比于WordPress&#xff0c;Typecho显得更加的轻量级和简洁。现在越来越多的人倾向于用Typecho来搭建个人博客——众所周知&#xff0c;能跑WordPress的机器都不便宜。 Typecho是一款国人团结打造的开源博客系统&#xff0c;和WordPress…

机器学习详解(11):分类任务的模型评估标准

模型评估是利用不同的评估指标来了解机器学习模型的性能&#xff0c;以及其优势和劣势的过程。评估对于确保机器学习模型的可靠性、泛化能力以及在新数据上的准确预测能力至关重要。 文章目录 1 介绍2 评估准则3 分类指标3.1 准确率 (Accuracy)3.2 精确率 (Precision)3.3 召回率…