编程实现将任意的十二进制转十进制整数转换成r二进制转十进制数【r在2-16之间

编程实现将任意的无符号十进制整数转换成R进制数打印在屏幕上.R在2到16之间.
编程实现将任意的无符号十进制整数转换成R进制数打印在屏幕上.R在2到16之间.
不区分大小写匿名
这个问题在搜搜问问上已经有人解决了,详细代码请参考下面的网址:希望对您有所帮助。
相关知识等待您来回答
教育/科学领域专家1.3.3 各种数制之间的转换
本文所属图书&>&
本书从编程原理、基本语法、 丰富且循序渐进的例题三个方面以C语言为平台介绍程序设计,旨在开拓学生解决问题的思路,培养学生解决问题的能力。本书的创新之处在于首先通过一个理想厨房的实例类比了计算机系统的...&&
1.二进制数转换为十进制数
任意一个二进制整数,比如二进制整数1011,其数值可用以下展开式来表示:
&(1011)2= 1&23+0&22+1&21+1&20(1)
此二进制数的值等于十进制的1&8+0&4+1&2+1&1=8+2+1=11。(2)
由此可以得到二进制整数转化成十进制整数的一般方法:只要将一个二进制整数(比如1011)展开后的(2)式中的每一位的系数值,(采用十进制乘法规则)乘以这一位转化成十进制数后的权重(即2的几次方),然后再将逐个乘积项的数值(采用十进制加法规则)相加起来即得到十进制数值。
由此可得到任意R进制实数(或整数)的表示法。一般情况下,任何一个R进制实数,都可以紧凑地表示为:
在计算科学中,R通常是2、8、10、16中的某个正整数。
其中的任何一个(系数)ri都是0到R&1之间的一个正整数,r0是个位数,r&1是小数点后的第一位数,rn是最高位数。r&m是小数点后的最低位数。如果小数点后的所有(系数)r&1、r&2、...、r&m等都为0,则(3)式表示一个整数。
将任意一个R进制数扩大R倍(即乘以R),只需将小数点右移一位即可。类似地,将任意一个R进制数缩小R倍(即除以R),只需将小数点左移一位即可。
R等于10时,就是人们最为熟悉的十进制数,这种(可以带小数点的)十进制数的简洁紧凑表示方法,是由古代印度人发明的(来源于人有十根手指)。
任何一个R进制实数,都可以用多项式展开表示为:
(ri称为系数,Ri称为权重)
在R进制数值的多项式展开表示法中,不使用小数点。
2.将十进制整数转化成二进制数
将十进制数转换成二进制数一般使用短除法。具体步骤为:把一个十进制转整数(比如89)换成二进制,只需用新的基数2(采用十进制除法规则)除以这个十进制数(89),余数(1)是结果左边的下一位数字,商(44)是新的被除数,然后重复这个过程,直到商为0时终止。
短除法就是按照这个过程,把要转换的十进制整数不断除以2,然后取余数,商作为新的被除数,直到商为0的时候结束。然后把余数倒着写出来。
例如,把89转换成二进制数的过程如下:
最后得到(89)10=(1011001)2。
注意:-短除法也完全适用于将一个十进制整数转换为一个任意R(R&2)进制的整数,只需将除数由2替换为R即可。
3.将十进制小数转化成二进制小数
将十进制小数转换为二进制小数的过程,与整数的进制转换过程有些类似,但计算方法恰恰相反:不是用新的基数2除这个数,而是用新基数2去乘它。乘法的进位(进到个位的数字)将成为答案右边的下一位数字,乘法结果中的小数部分将成为新的被乘数,整个过程直到乘法结果中的小数部分为0时终止。
( 要想明白这种转换规则的道理,请考虑恒等式: 0.375=r&1&2&1+r&2&2&2+&+r&m&2-m&&中的系数r&1、r&2等应该如何通过每次乘2来求得。)
例如,把十进制小数0.375转换成二进制小数:
&&0.375&2& = 0.750&&0&&//进位0,小数点后的第一位
&&0.75&2&& = 1.50&&&1&&//进位1,小数点后的第二位
&&0.5 &2&& =1.0&&&1&&//进位1,小数点后的第三位
所以,(0.375)10=(0.011)2。
4.二进制整数转换成十六进制整数
虽然计算机用二进制存储和传输各种数据,但是它并不适合在计算机外部(比如在源程序中)表示数据。因为与十进制数据相比,二进制数据(即位串)过于长了。
然而,十进制又不像二进制那样能够直接显示存储在计算机中的是什么。在二进制位串和十进制数字之间不存在明显的关系,它们之间的转换很不方便。
为此,人们想到了使用十六进制(或八进制)。在计算机外部用十六进制来表示计算机内部的二进制数,由于二进制和十六进制数之间的转换非常快捷,这样就能比较好地解决以上难题。
十六进制数用16个符号来表示一个数,字符集是{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}。注意,符号A,B,C,D,E,F(也可用小写)的值分别等于十进制的10,11,12,13,14,15。
表1-3是二进制、八进制、十六进制整数对照表。利用此表就能很快实现二进制和十六进制数之间的转换。
下面介绍二进制整数与十六进制整数(或八进制)之间是如何转换的。
一个二进制数,比如:
也就是说,只要将一个二进制数,从最低位开始,每4个二进制的位通过查表1-3,直接转变成十六进制的1位数。
&& 101& 1110&(从最低位开始每4位二进制分为1组)
&&&& &&&& &
&&&&& 5&&&&& E&(查找1-3表直接得到十六进制数)
由此可见,二进制整数转换成十六进制整数是很方便快捷的,只要直接查找表1-3即可,不需任何转换计算。我们可以看到,一个较长的二进制数转换成十六进制数后确实简短多了。
二进制整数转换成八进制整数与此完全类似。
5.十六进制整数转换成二进制整数
由于上述二进制整数转换成十六进制整数的整个过程完全是可逆的。所以,完全可以通过查表1-3,将一个十六进制转化成二进制。例如,对于十六进制E5,通过查表可知,十六进制的E对应1110,十六进制的5对应0101。
所以,十六进制数E5转化为二进制数的过程为:
&&十六进制数:& E&&&& &&&&&&&& 5
&&&&&&&&&&&&&&&&&&&&&&& && &&&&&&&&&&&&&&& &&
&&二进制数:&& 1110&&&&& &0101
结果为:(E5)16=()2。
注意:每个十六进制数字都转化成4位二进制数字,不足4位要补足成4位。比如,十六进制5对应着二进制0101而不是对应着二进制101。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。}

我要回帖

更多关于 十进制转二进制计算器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信