求所有进制转换方法?

如题所述

“数制”只是一套符号系统来表示指称“量”的多少。我们用“1”这个符号来表示一个这一“量”的概念。自然界的“量”是无穷的,我们不可能为每一个“量”都造一个符号,这样的系统没人记得住。所以必须用有限的符号按一定的规律进行排列组合来表示这无限的“量”。符号是有限的,这些符号按照某种规则进行排列组合的个数是无限的。十进制是10个符号的排列组合,二进制是2个符号的排列组合。
在进行进制转换时有一基本原则:转换后表达的“量”的多少不能发生改变。二进制中的111个苹果和十进制中的7个苹果是一样多的。
十进制中的数位排列是这样的…… 万 千 百 十 个 十分 百分 千分……
R进制中的数位排列是这样的……R^4 R^3R^2 R^1 R^0 R^-1 R^-2 R^-3……
可以看出相邻的数位间相差进制的一次方。
以下部分来源:知乎网友
进制这事儿,说到底就是位值原理,即:同一个数字,放在不同的数位上,代表不同大小的“量”。例如:十进制中,百位上的1表示100,十位上的1表示10。
任何进制中,每个数都可以按位权展开成各个数位上的数字乘以对应数位的位权,再相加的形式,如:
十进制的123=1×100+2×10+3×1
十进制的9876=9×1000+8×100+7×10+6×1
问:为啥相应的数位是1000、100、10、1?为啥不是4、3、2、1?
答:十进制,满十进一,再满十再进一,因此要想进到第三位,得有10×10;第4位得有10×10×10
这样我们就知道了:
对10进制,从低位到高位,依次要乘以10^0,10^1,10^2,10^3……,也就是1、10、100、1000
对2进制,从低位到高位,依次要乘以2^0,2^1,2^2,2^3……,也就是1、2、4、8、……
下面我们开始转换进制(以十进制换成二进制为例):
原来十进制咱们的数位叫 千位、百位、十位……
现在二进制数位变成了八位、四位、二位……
模仿上面十进制按位权展开的方式,把二进制数1011按权展开:
1011=1×2^3+0×2^2+1×2^1+1×2^0=1×8+0×4+1×2+1×1=8+2+1=11
接下来我们进行十进制往二进制的转换:
比较小的数,直接通过拆分就可以转换回去
比如13,我们把数位摆好八位、四位、二位,不能写十六了,因为一旦“十六”那个数位上的符号是“1”,那就表示有1个16,即便后面数位上的符号全部是“0”,把这个二进制数按权位展开后,在按照十进制的运算规律计算,得到的数也大于13了。那最多就只能包含“八”这个数位。
13-8=5,5当中有4,5-4=1
好啦,我们知道13=1*8+1*4+0*2+1*1 把“1”、“1”、“0”“1”这几个符号放到数位上去:
八位、四位、二位、一位
1 1 0 1
于是十进制数13=二进制数1101
现在你按照书上说的短除法来试试,会发现它和你凑数得到的结果刚好是一样的,为什么短除法可以实现进制的转换呢?为什么每次要除以进制呢?为什么要把余数倒着排列呢?
想要知道其中的道理的话,请仔细品味以下的递归原理(不知道递归没关系):
(1)一个十进制数321的末尾是1,意味着一定是……+1,省略号部分一定是10的倍数,所以一个十进制数末尾是1意味着十进制数除以进制10一定余1。所以第一次除以10之后的余数,应该放在十进制的最后一个数位“个位”,也就是说个位上的符号是1。
类比,一个二进制数111(注意,数值不等于上面十进制的111)末尾是1,意味着一定是……+1,前面的省略号部分都是2的倍数。所以一个二进制数末尾是1,意味着它对应的十进制数除以进制2一定余1。所以第一次除以2之后的余数,应该放在二进制的最后一个数位“一位”,也就是说一位上的符号是1。
(2)如果一个十进制数321“十位”是2,我们希望把它转换为(1)的情况。那么我们把这个十进制数的末尾抹掉,也就是减去“个位”上的1,再除以进制10,得到32。这样原来“十位”上的“2”就掉到了“个位”上。再把32做(1)的处理。
类比,如果一个二进制数111“二位”是1,我们希望把它转换为(1)的情况,那么我们把这个二进制数的末尾抹掉,也就是减去“一位”上的1,再除以进制2,得到11。这样原来“二位”上的“1”就掉到了“一位”上。再把11做(1)的处理。
总结:其实这个过程就是把各个数位上的符号求出来的过程。
现在你应该可以回答以下问题了:为什么短除法可以实现进制的转换呢?为什么每次要除以进制呢?为什么要把余数倒着排列呢?
R进制转换成十进制就是按权位展开,把展开式放到十进制下,再按照“十进制”的运算规律计算。因为是十进制,所以就允许使用2、3、4、5、6、7、8、9了。所以2的n次方就不用写成指数,而可以用另外的八个符号来表示了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-16
10进制转换成其他的都是除以要转换成的那个数,也就是说转换成二进制的就除以2,转换成八进制的就除以8,转换成十六进制的就除以16,然后倒取余数。具体例题如下

10---2:把20转换成二进制

20/2=10..........余数为0

10/2=5...........余数为0

5/2=2............余数为1

2/2=1............余数为0

1/2=0............余数为1

则20换成二进制后是10100

10---8:把20转换成八进制

20/8=2...........余数为4

2/8=0............余数为2

则20转换成八进制后是24

10---16:把20转换成十六进制

20/16=1..........余数为4

1/16=0...........余数为1

则20转换成十六进制后是14
2---10:把二进制数1101转换成十进制

1101=1*2的0次方+0*2的1次方+1*2的2次方+1*2的3次方=13

则1101变成十进制后是13

8---10:把八进制数1340转换成十进制

1340=0*8的0次方+4*8的1次方+3*8的2次方+1*8的3次方=736

则1340变成十进制后是736

16---10:把十六进制数3A4F转换成十进制

3A4F=15*16的0次方+4*16的1次方+10*16的2次方+3*16的3次方=14927

(十六进制中的A是10,F是15)

二进制与八进制的相互转换:

八进制数0 1 2 3 4 5 67

二进制数000 001 010011 100 101 110 111

二进制与十六进制的相互转换:

十六进制 0 1 2 3 4 5 67 B

二进制数0000 0001 00100011 0100 0101 0110 0111 1011

根据二进制的原则“逢二进一”,我们把2的n次方列出分别是:

2=1  2=2  2=4  2=8 2=162=32  2=64……

“8421”法的原理说白了就是一种凑数法,按2的n次方的值列出,根据不同的情况进行“凑数”。

一、对于二进制转换成十进制数

例如:二进制数1011转换成十进制数

8  4  2  1

二进制数: 1  0  1  1 (结果为凡是1对应的数相加:8+2+1=11)

例1:101转换成十进制数

8  4  2  1

0 1  0  1  (结果为凡是1对应的数相加:4+1=5)

例2:11100转换成十进制数

16  8  4  2  1

1  1  1  0  0  (结果为凡是1对应的数相加:16+8+4=28)

二、对于十进制转换成二进制数

例如:十进制数不胜数10转换成二进制数

8  4  2  1  (因为10=8+2)

1  0  1  0 (故凡是凑到的8和2下面都是1,没有凑到的为0)

例3:十进制数6转换成二进制数

8  4  2  1  (因为6=4+2)

0  1  1  0 (故凡是凑到的4和2下面都是1,没有凑到的为0)

例4:十进制数28转换成二进制数

16 8  4  2  1   (因为16+4+8=28)

1  1  1  0  0  (凑到的为1,没有凑到的为0)本回答被提问者采纳
第2个回答  2019-12-16
二进制数,十六进制数可以采用按权展开法转化为十进制数,十进制转化为R进制要分为两部分,其中整数部分要除R取余,直到商为0,小数部分要乘R取余直到得到整数
第3个回答  2019-12-16
转换镜子的方法很容易啊,比如说十进制转换为二进制,那就把十也就是说你满了二就变成十位,再满了二就变成百位追问

方法OK?

追答

说的这么明白了,是个男人都能懂

10性子就是一个杯子,里面放十个球就满了,二进制就是一个杯子,里面放两个球就满了

追问

算了

我已经复习好了

追答

唉,这么基础你都不知道,别上考场了

来我工地打工吧!别人5000的工资,我给你5300

第4个回答  2019-12-16
这个方法就按他的规则来。规则是定下来的,必须是这个方面的规律。