浅谈进制的转换

本文创作灵感来自CSDN@咸鱼WCY 的

咸鱼小白学嵌入式之C语言(2.进制)

博主更完就没更了,决定书接上回(喜


进制是个啥

要理解进制,首先哈,咱得知道不同进制的含义

说到底,各个进制其实有点像在用不同姿势表示一个数,也就是一个数的不同表示方式

再详细一些,就是逢几进1

 

比如十进制,就是逢十进一

那我们数数时,就是这样的:

1  2  3  4  5  6  7  8  9

可是这时候,再数就≥10了,怎么办呢?进一就好了,变成10。也就是十位+1,个位清零。

接下来,就可以再次从个位加起,再进十位,十位到9了还要加一,就会诞生百位……以此类推

那这种思维我们依葫芦画瓢到二进制,又是怎么样呢?

二进制就是逢二进一,所以每当数≥2时,就要进位。

我们从一开始吧。

1  ?

下一个,1+1≥2了,那就要进一,十位+1,个位清零,得什么?

对了,10

但是此时我们一般不读这个为“十”,一般念“一零”,因为此处的10表示的和十进制的“十”就不一样了,它其实表示十进制的“二”

 

其它进制的话这样表示也是很好理解的,要注意的是16进制。

16进制是逢16进一,那就得表示出10 11 12 13 14 15啊!

于是,就有了ABCDEF。。。

不得不说,简单粗暴我喜欢

进制写法

一般来说,我们这样表示不同进制数

二进制:()B

八进制:()O

十进制:()D

十六进制:()H

填数即可

后面的字母是对应进制的缩写,不用管

比如二进制11,就可以写作11B

 

也有更简单的方法,(数)进制数  这样写

比如二进制11写作  (11)2

(一般进制数写得小一些,在括号右下角)

 

在计算机里,常用的十六进制也可能写作数加上前缀 0x (注意是阿拉伯数字0,不是o!)

 

进制的转换

就像美元和人民币一样,总得流通吧

所以,各个进制之间也总要转换的啊

依旧以十进制为标准,易得

 

c757e9ce3e414ea289adf5fbbef77d41.jpg

这样就很好理解了

 

可是,进制转换总不能要转换就从1开始写吧,要是要求转换10086D为二进制,那不得写死了??!

所以,从本质出发,我们需要一种计算方式来转换进制

这件事嘛,还得分两段说

十进制转n进制

这个还是比较好理解,也是比较常用的,用短除法。

短除法是十进制转换经典方法,原理如下,不想看可以跳下一个标题

短除法转换进制的原理

这个短除法还是基于二进制的原理实现的

二进制是逢二进一嘛,

短除法把十进制数除以二,相当于二进制进了一位,余数就是进位后的数,以此类推,最后除的余数必定是最高位的二进制数,所以就倒序写。

说到底就是十进制数除以2,相当于二进制数进了一位

(其实我也是一知半解,不知怎么解释)

短除法

咱假设要转换的数是20D

 

b52882ca77df44e2a02ba2756b36fed4.jpg 

 从下往上读余数,是10100,所以20D

=10100B

毫无技术含量可言 :D

(也不知是哪个人二进制题10题只对6题)

n进制转十进制

这个是比较重要的一个方法,相比短除法也难一些

理解这个之前,要了解一个重要的知识点。

基数和位权都是啥?

先不谈n进制,先看十进制

一个数,假设是456,那么我们就可以知道这里是有4个100,5个10,6个1

这应该是幼儿园知识了哈,我们略过

那么100 10 1 有什么关系呢?

前提条件,在10进制,所以我们需要探究它和10有什么关系。

不难发现,100=10^2,10=10^1,1=10^0,由个位开始指数从0开始依次连续加一

那再带入式子,得到

456D =4×10^2 + 5×10^1 + 6×10^0

这就是大名鼎鼎的——位权展开式

此处以一个字母式为例

(ABC)n=A×n^2+B×n^1+C×n^0

A,B,C分别就是基数,也就是基本的数,任何花样都以此进行

而n的若干次方就是对应的位权,平时不这么写的时候,可以理解为百位十位个位它们的区别

 

那么再次看看其他进制吧~

举例10100B,等于什么?

对,10100B=1×2^4 + 0×2^3 + 1×2^2 + 0×2^1 + 0×2^0

也可以直接化简为10100B=1×2^4 + 1×2^2

位权展开式可以干啥?

那现在知道了位权展开式,怎么用来转换进制呢?

刚刚我们看的十进制和二进制的位权展开式,有什么特点?

可以发现在展开式中底数都是对应的进制数

这个发现就能很快推导出来,这个很大可能和进制有关系

10100B=1×2^4 + 1×2^2

简单计算出来,等于16+4=20

所以,10100B=20D

其他进制也可以这样做

简单的,可以自行理解

 

更加高级一点的转换

带小数的十进制转换n进制

这个比较麻烦一点,我们以13.625D转换二进制为例

1.拆离整数部分和小数部分

这里拆开得到13和0.625

2.转换整数部分

13的话可以看前面,得1101B

3.转换小数部分

重点来了!

怎么转换小数部分嘞

其实之前我经常直接把小数点移位,转换完再移回去,可是经常错,所以这样不对

因为转换完之后的位数又和原来可能不一样,转换完再移位很显然不对

所以要用一种方法

小数部分是0.625嘛,我们需要把它不断乘以需要转换到的进制数(此处是2),取整数部分提出来加入结果小数部分,再取小数部分继续乘,一直做到小数部分为0或者精度够了,如下

整数部分:1101B

 

0.625×2=1.25          1101.1B

0.25×2=0.5              1101.10B

0.5×2=1                   1101.101B

 

所以得出,13.625D=1101.101B

如果觉得很难,没关系,之前赛前培训也被这个整得快疯了(苦笑)主要是各种小数又是整数,乘又除的啊啊啊啊啊

 

带小数的n进制转十进制

这个其实更加简单一些,位权展开式照抄就行了啊

举例,1101.101B转换为十进制

这里需要连贯性,所以整数小数一起说吧

已知1101B=1×2^3 + 1×2^2 + 0×2^1+1×2^0=13

那么……小数部分会不会也可以改写成位权展开式呢?

当然可以!

我们继续往下,0-1=-1,所以,小数部分就是负数的次方

0.101等于 1×2^-1 + 0×2^-2 + 1×2^-3

计算一下就得0.5+0+0.125=0.625

补在整数部分13后面,得13.625

所以1101.101B=13.625D

这个比小数十进制转n进制简单点吧

hhh我个人感觉是


以上就是各个进制转换的知识了,作为无聊的木子2024年的第一篇文章,可能知识点过于简单,文笔也不尽生疏,接下来木子会继续努力,更新更优质的文章

 

2024.02.13 在手机上敲打了一上午

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学生公寓|基于Springboot的学生公寓管理系统设计与实现(源码+数据库+文档)

学生公寓管理系统目录 目录 基于Springboot的学生公寓管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、宿舍列表 2、宿舍公告信息管理 3、宿舍公告类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

洛谷: [CSP-J2019] 公交换乘

题目描述 著名旅游城市 B 市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交车的优惠方案: 在搭乘一次地铁后可以获得一张优惠票,有效期为 45 分钟,在有效期内可以消耗这张优惠票,免费搭乘一次票价不超过地…

学生成绩管理系统|基于Springboot的学生成绩管理系统设计与实现(源码+数据库+文档)

学生成绩管理系统目录 目录 基于Springboot的学生成绩管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员功能模块 2、学生功能模块 3、教师功能模块 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源…

AI引领低代码革命:未来应用开发的新主流

距离ChatGPT发布已经过去快一年时间。 在这一年里,以ChatGPT为代表的自然语言处理领域的重大进步,为我们的对话系统和语言交流提供了更加智能和自然的体验。随着ChatGPT的应用不断扩大,人们开始认识到人工智能(AI)技术…

elasticsearch增删改查

一、数据类型 1、字符串类型 (1)text (2)keyword 2、数值类型 (1)long、integer、short、byte、float、double 3、日期类型 (1)date 4、布尔类型 (1&#xff0…

【AI绘图】初见·小白入门stable diffusion的初体验

首先,感谢赛博菩萨秋葉aaaki的整合包 上手 stable diffusion还是挺好上手的(如果使用整合包的话),看看界面功能介绍简单写几个prompt就能生成图片了。 尝试 我在网上找了一张赛博朋克边缘行者Lucy的cos图,可能会侵…

假期作业 2月8日

数据类型与作用域练习 1、选择题 1.1、以下选项中,不能作为合法常量的是 __________ A)1.234e04 B)1.234e0.4 C)1.234e4 D)1.234e0 1.2、以下定义变量并初始化错误的是_____________。 A) char c1 ‘H’ &#xff…

开发自定义标记应用程序

开发自定义标记应用程序 问题陈述 Larry Williams 是ABC Inc.公司的CEO,他希望公司能够拥有一个交互式网站以向访问网站的用户表示问候并显示当前时间。他还希望最终用户能够指定主页的背景颜色。您是公司的网站管理员。Larry要您修改网站的主页,以便向最终用户显示自定义问…

Linux篇:网络基础1

一、网络基础:网络本质就是在获取和传输数据,而系统的本质是在加工和处理数据。 1、应用问题: ①如何处理发来的数据?—https/http/ftp/smtp ②长距离传输的数据丢失的问题?——TCP协议 ③如何定位的主机的问题&#…

Redis集中管理Session和系统初始化参数详解

Redis 是一个开源的、基于内存的键值存储系统,通常用作数据库、缓存或消息传递系统。在 Web 应用程序中,Redis 常用于集中管理 Session 数据和系统初始化参数。 Redis 管理 Session Session 是 Web 应用程序中用于保持用户状态的一种机制…

鸿蒙小案例-你画我猜

鸿蒙小案例-你画我猜 1.准备组件(组件布局) 2.实现跟随鼠标画笔画出图案功能 3.实现复制上面的画笔的图案功能 4.其他小功能1.组件的准备 画布的组件官方给的API是Canvas,需要传递一个参数CanvasRenderingContext2D 直接搜索API 使用官方案例 private settings: …

L2-1 点赞狂魔——pta(题解)

微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这…

【蓝桥杯Python】试题 算法训练 藏匿的刺客

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 强大的kAc建立了强大的帝国,但人民深受其学霸及23文化的压迫,于是勇敢的鹏决心反抗。   kAc帝国防守…

C语言——求 1+12+123+……前 n 项之和,其中n 是从键盘输入的一个数字(1~9)。

一、问题 求 112123……前 n 项之和&#xff0c;其中n 是从键盘输入的一个数字&#xff08;1~9&#xff09; 二、解答 #include <stdio.h>int main() {int n, i, term 0, sum 0;printf("请输入一个数字(1~9): ");scanf("%d", &n);if (n <…

书生谱语-基于 InternLM 和 LangChain 搭建知识库

大语言模型与外挂知识库&#xff08;RAG&#xff09;的优缺点 RAG方案构建与优化 作业 在创建web_demo时&#xff0c;需要根据教程将服务器端口映射到本地端口&#xff0c;另外需要将链接的demo从服务器中复制出来&#xff0c;不要直接从服务器打开demo页面&#xff0c;不然会…

分布式事务详解

概述 随着互联网的发展&#xff0c;软件系统由原来的单体应用转变为分布式应用。分布式系统把一个单体应用拆分为可独立部署的多个服务&#xff0c;因此需要服务与服务之间远程协作才能完成事务操作。这种分布式系统下不同服务之间通过远程协作完成的事务称之为分布式事务&…

c# 拼音 帮助类

public class PinYinHelper { #region 获取汉字对应的拼音 /// <summary> /// 获取汉字对应的拼音 /// </summary> /// <param name"str"></param> /// <returns></returns> …

JavaScript中有哪些不同的数据类型

在 JavaScript 中&#xff0c;数据类型是一种用来表示数据的分类&#xff0c;它决定了我们可以对这个数据类型执行哪些操作。在 JavaScript 中有以下几种不同的数据类型&#xff1a; 基本数据类型 字符串 (String)&#xff1a;表示一组字符&#xff0c;可以使用引号&#xff08…

ElasticSearch级查询Query DSL上

目录 ES高级查询Query DSL match_all 返回源数据_source 返回指定条数size 分页查询from&size 指定字段排序sort 术语级别查询 Term query术语查询 Terms Query多术语查询 exists query ids query range query范围查询 prefix query前缀查询 wildcard query通…

CVE-2022-25487 漏洞复现

漏洞描述&#xff1a;Atom CMS 2.0版本存在远程代码执行漏洞&#xff0c;该漏洞源于/admin/uploads.php 未能正确过滤构造代码段的特殊元素。攻击者可利用该漏洞导致任意代码执行。 其实这就是一个文件上传漏洞罢了。。。。 打开之后&#xff0c;/home路由是个空白 信息搜集&…