进制是什么?该怎么写进制转化 10进制转换为任何进制(2进制/4进制/8进制/16进制) 例题:杭电HDUoj2031---进制转换/c++


前言

先上例题
在这里插入图片描述


一、进制是什么?

首先我们需要知道进制是什么,比如我们熟悉的10进制,9 + 1 = 10,因为在10进制中我们没有一位的第十个数的表达方法,所以我们的数字向前进了一位,从一位数字变成了二位数字,这就是进位,而对于我们二进制来说1 + 1 = 10,因为二进制就没有2这个数字,所有要进一位来表示,再来到16进制9 + 1 = A,16进制中有个数字可以用一位来表达10那就是A。

看完上文是不是对进制有了一个更进一步的认知呢,

我们先举个例子来更近一步的说明进制到底是什么:
我们先来看一下13为什么是13
13 = 3 × 1 + 1 × 10
因为10进制的数本质上来说就是是一个1和 一个3 乘于他们的位数就是我们认知中的大小,那我们再看看2进制的13。
二进制的13就是1101二进制不像十进制数并不是以单位数十位数百位数这样递增的而是单位是二位数四位数八位数这样递增的
所以就像刚刚计算十进制数的认知中的大小也就是10进制大小一样把乘的位数值换成当前二进制的位数,也就是1 × 1 + 0 × 2 + 1 × 4 + 1 × 8 = 13
那三进制的13呢
1 × 1 + 1 × 3 + 1 × 9 = 13
所以3进制的13是111

到这里是不是已经明白进制到底是什么了呢?

二、进制转换的思路

接下来就是进制转换的实现了
首先我们先弄明白23为什么是23呢?
因为23拿走10 时候剩下了13,但十进制数还是代表不了13所以再拿走一个10然后剩下一个拿不走的3,所以留在单位数上,而拿走的两个10则进一位变成2成为十位数
这是十进制的情况,那我们用别的进制呢,比如使用2进制的话,
13拿走1个2留下11就这样一直拿到拿不走(也就是取模)最后会剩下1,留在单位数上,二位数上则进了6,取模后余0,进到四位数上的数为3,取2模余1,最后八位数上就剩下无法满足2进位条件的1,
所以最后的2进制13就是八位数余1四位数余1二位数余0单位数余1的:1101

如果看到这里已经对进制转换有了思路就可以暂时关闭浏览器到IDE里面测试一下自己的思路了,写完可以回来和我的对比一下好坏,如果觉得自己的思路更加优秀的话可以发到评论区

代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值