怎么在任意进制间转换

作者&投稿:愈品 (若有异议请与网页底部的电邮联系)
任意进制数之间相互转换~

A进制数X在B进制下数值为Y

X每位A进制数字分别在B进制下表示为b0,b1,b2,b3,...(整数部分),b(-1),b(-2),b(-3),...

A进制数10在B进制下值为p

公式为
Y=b0*p^0+b1*p^1+b2*p^2+b3*p^3+...+b(-1)*p^(-1)+b(-2)*p^(-2)+b(-3)*p^(-3)+...


二进制八进制十六进制之间相互转换的方法

由于8,16是与2是指数关系,转换方法简单一些
以小数点为界,二进制每3个数字一组表示一个八进制数,二进制每4个数字一组表示一个十六进制数。这样就简化了公式:首先分组按照公式转换,再把得到的数排列在一起。
如:
101110010101.101(二)
=1011 1001 0101.1010(二)
=B95.A(十六)

7AF.8E(十六)
=0111 1010 1111.1000 1110(二)
=011 110 101 111.100 011 100(二)
=3657.434(八)


十进制和二进制八进制十六进制则可以采用
除2/8/16取余法(不另说明)

还可用公式
例子
198
=128+64+4+2
=10000000(二)
+ 1000000(二)
+ 100(二)
+ 10(二)
=11000110(二)

C语言中实现10进制转换为任意进制的过程为:
定义数组int rs[32],保存转换后的数据,整数的转换结果最多32位(4字节*8位)
定义一个数组char map[]={'0','1','2','3',...,'9','A','B',...'F'},完成相应数值对应的转换后的字符
输入10进制数(整数)num
转入转换进制基数(2-16)ind
循环对num进行模ind运算,得到余数存储到数组rs中
num缩小ind倍
当num为0时结束循环
反向输出数组rs中对应的各元素对应的map字符,得到转换结果
参考代码:
#include int main(){ char map[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int i,c[32],num,ind; do {printf("input num: ");scanf("%d", &num );}while(num16||ind=0;i--) printf("%c",map[c[i]] ); printf("
"); return 0;}运行结果:
input num: 100
input ind: 2
1100100

input num: 100
input ind: 8
144

input num: 100
input ind: 16
64

计算机中数的表示方法--二进制
1. 二进制数的运算
电子计算机一般采用二进制数。二进制数只有0和1两个基本数字,容易在电气元件中实现。
二进制数的运算公式:
0+0=0 0×0=0
0+1=1 0×1=0
1+0=1 1×0=0
1+1=10 1×1=1
2.十进制和二进制间的转换
(1) 十进制数转换成二进制
将十进制整数转换成二进制整数时,只要将它一次一次地被2除,得到的余数从最后一个余数读起)就是二进制表示的数。
2) 二进制数转换成十进制数
将一个二进制数的整数转换成十进制数,只要将按权展开。
例:11011=1*24(2的4次方)+1*23(2的3次方)+0*22(2的2次方)+1*21(2的1次方)+1*20(2的0次方)=27
3. 不同进制数的转换
二进制数和八进制数互换:二进制数转换成八进制数时,只要从小数点位置开始,向左或向右每三位二进制划分为一组(不足三位时可补0),然后写出每一组二进制数所对应的八进制数码即可。
例:将二进制数(10110001.111)转换成八进制数:
010 110 001. 111
2 6 1 7
即二进制数(10110001.111)转换成八进制数是(261.7)。反过来,将每位八进制数分别用三位二进制数表示,就可完成八进制数和二进制数的转换。
二进制数和十六进制数互换:二进制数转换成十六进制数时,只要从小数点位置开始,向左或向右每四位二进制划分为一组(不足四位时可补0),然后写出每一组二进制数所对应的十六进制数码即可。
例:将二进制数(11011100110.1101)转换成十六进制数:
0110 1110 0110. 1101
6 E 6 D
即二进制数(11011100110.1101)转换成十六进制数是(6E6.D)。反过来,将每位十六进制数分别用三位二进制数表示,就可完成十六进制数和二进制数的转换。

八进制数、十六进制数和十进制数的转换:这三者转换时,可把二进制数作为媒介,先把代转换的数转换成二进制数,然后将二进制数转换成要求转换的数制形式。


进制转换的方法
1、十进制到其他进制的转换:除基取余法,将十进制数不断除以要转换的进制,直到商为0,然后将每次的余数反向排列即可得到转换后的数。2、其他进制到十进制的转换:乘基加权法,将每一位上的数乘以对应位置的权值,然后将各个位上的乘积相加即可得到十进制数。3、二进制、八进制和十六进制之间的转换...

进制之间的转换方法
进制之间的转换方法如下:1、十进制转二进制和十进制转八进制:将十进制数不断除以2,直到商为0,然后将每一步的余数倒序排列即可得到二进制表示。将十进制数不断除以8,直到商为0,然后将每一步的余数倒序排列即可得到八进制表示。2、十进制转十六进制和二进制转十进制:将十进制数不断除以16,直...

进制之间怎么转换?
1、十进制转二进制:十进制数除2取余法,即十进制数除以2,余数为权位上的数,得到的商值继续除2,以此步骤直到商为0为止。2、二进制转十进制:把二进制数按权展开,相加即得十进制数。3、二进制转八进制:3位二进制数按权展开相加得到1位八进制数(注:3位二进制转成八进制是从右到左开始...

怎样进行进制间的转换
方法为:把二进制数按权展开、相加即得十进制数。(具体用法如下图)二、二进制与八进制之间的转换 1.二进制转八进制 方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。(具体用法如下图)2.八进制转成二进制 方法为:八...

进制之间的转换方法 进制之间的转换方法是什么
1、进制转换的方法是:二进制数,十六进制数可以采用按权展开法转化为十进制数,十进制转化为R进制要分为两部分,其中整数部分要除R取余,直到商为0,小数部分要乘R取余直到得到整数。2、进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制、八进制、十进制与十六...

对于各进制之间的转换有什么好方法吗?
回答:各进制之间转换是有一些好的办法,这些需要在平时多思考总结,下面给大家分享一些好的思路和办法,希望对你有所帮助。 用二进制转换 2进制转16进制,从末尾隔四位打逗号,最前面不足四位补0,然后把0000-1111转化成对应的0-F。 转8进制就是隔三位打逗号,然后把000-111转化成0-7。 16进制转2进制...

任意进制转换成十进制的方法
任意进制转换成十进制的方法,都可以采用乘权求和的方法进行。以小数点左边第1位的权为1,然后每向左一位他的权就乘以进制数,每向右一位他的权就除以进制数。下面举两个例子:(1101.01)2=8+4+1+1\/4=13.25 (12A.3)16=1*16*16+2*16+10+3\/16=298.1875 ...

进制之间的转换
进制之间转换需要区分正整数和负数,平常的面试当中,还没有遇到相关的问题,笔试阶段可能碰到一两个,我在这里做一个简单的整理,解决普通的问题应该绰绰有余。目录 最后一位数是2的零次方,依次类推进行加法运算 例如:11100转十进制 二进制转换为十六进制的方法是,取四合一法,即从二进制的小数点...

十进制、八进制以及十六进制之间是如何转换的?
对于二进制来说,每个位置上的数字只能是0或1。从右往左,每个位置的权重是2的幂次方。例如,二进制数1011可以按权展开为1×2^3 + 0×2^2 + 1×2^1 + 1×2^0 = 8 + 0 + 2 + 1 = 11(十进制)。在十进制中,每个位置上的数字可以是0-9之间的任意一个。从...

任意进制数之间相互转换
A进制数10在B进制下值为p 公式为 Y=b0*p^0+b1*p^1+b2*p^2+b3*p^3+...+b(-1)*p^(-1)+b(-2)*p^(-2)+b(-3)*p^(-3)+...二进制八进制十六进制之间相互转换的方法 由于8,16是与2是指数关系,转换方法简单一些 以小数点为界,二进制每3个数字一组表示一个八进制数,二进制每...

淮阳县15517648429: 任意进制数之间相互转换 -
厉鬼凯乐: 一个八进制等于三位二进制、一个十六进制等于四位二进制.直接数位数!

淮阳县15517648429: 各进制数之间如何转换. -
厉鬼凯乐: 标准的答案!一:十进制数转换成二进制数. 随便拿出一个十进制数“39”,(假如你今天买书用了39元)先来把这个39转换成2进制数. 商余数步数 39/2=191第一步 19/2=91(这里的19是第一步运算结果的商)第二步 9/2=41(这里的9是第...

淮阳县15517648429: 不同进制之间的转换方法 -
厉鬼凯乐: 10进制转2进制,除2取余. 2进制转10进制,用2的幂次方. 如二进制1110,转化成十进制,2^3 + 2^2 + 2^1 +2^0. 16进制转二进制可以4位二进制看成一个16进制数.如二进制1111_0000, 十六进制0xf0. 8进制转2进制,和16进制一样,只看3位可以了. 或者你可以先把16转成10,再转成2进制

淮阳县15517648429: 计算机各进制之间的转换方法 -
厉鬼凯乐: 10进制转换成其他的都是除以要转换成的那个数,也就是说转换成二进制的就除以2,转换成八进制的就除以8,转换成十六进制的就除以16,然后倒取余数.具体例题如下 10---2:把20转换成二进制 20/2=10..........余数为0 10/2=5...........余数为0 ...

淮阳县15517648429: 进制之间的转换方法 -
厉鬼凯乐: 逢2进1,8进1,16进1,32进1

淮阳县15517648429: 如何使进制之间相互转化?
厉鬼凯乐: 首先你要了解进制的含义,进制是一种记数的方法,我们日常使用的是10进制,意思就是逢10进1,0123456789刚好10个数,也就是10进制的个位,在9的基础上如果再加1,那就要进位了,就变成了10,这就是10进制.同样2进制是计算机使用的记数方法,逢2进1,0和1刚好2个数,在1的基础上如果再加1,那就要进位了,就变成了10.10进制 2进制 8进制 0 0 0 1 1 1 2 10 2 3 11 3 4 100 4 5 101 5 6 110 6 7 111 7 8 1000 10 9 1001 11 10 1010 12以上是进制的原理,各进制之间的转换方法,你可以在网上搜索一下,就会有答案的 问问的排版真恶心

淮阳县15517648429: 2进制、8进制、10进制、16进制、之间的转换怎么算啊 -
厉鬼凯乐:[答案] 十进制整数转换R进制(R可以是任何整数,比如3、5、7)整数,方法就是除R取余,十进制转八或十六进制方法类似转二进制,除以基数取余就行了,比如转八进制就除8,转十六进制就除16. 二进制和八进制、十六进制之间转换采用的是分组转换...

淮阳县15517648429: 各种进制数之间怎么转换啊? -
厉鬼凯乐: 正常用的是2,8,10,16进制.比如说十进制(10)转二进制,则有 16 8 4 2 1 0 1 0 1 0 1*2^3+1*2^1 = 10 那么二进制为1010,就是十进制(10)

淮阳县15517648429: 进制如何转化 -
厉鬼凯乐: 所有进制间转换最好是用二进制过渡一下,如十六进制和八进制转换,先将一位十六进制转换为四位二进制,然后将所有二进制从右往左每三个一组(如果最后一组不足三位,在前面补0),转换为八进制(采用8421法则). 下面以BC5为例讲...

淮阳县15517648429: 进制之间如何转换?
厉鬼凯乐: 其它进制转到10进制用权积法 如二进制的110转成10进制 1*2^2+1*2^1+0*2^0 = 4+2+0 = 6 //注2^2表示2的多少次方,由于二进制基数为2所以是2的多少次方,如果是8进制就是8的多少次方 10进制转其它进制,用整除法,之后取余数,整数部分倒序序列就是对应的相应进制数

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网