利用递归将十进制转换为二进制(c primer plus中的例题)
来源:互联网 发布:sem和seo 怎么读 编辑:程序博客网 时间:2024/05/08 12:44
怎样得到5的二进制数? 因为奇数的二进制形式的最后一位一定是1,而偶数的二进制数的最后一位是0,所以可以通过计算5%2得到5的二进制形式中的最后一位数字是1或0.一般来讲,对于数值n,其二进制数的最后一位是n%2,因此计算出的第一个数字恰是需要输出的最后一位数字。这就需要使用一个递归函数实现。在函数中,首先在递归调用之前计算n%2的数值,然后再递归调用语句之后进行输出。这样,计算出的第一个数值反而在最后一个输出。
其实二进制的输出就像是十进制的差不多,我们打个比方就能更好地理解。比如说,300%10就能求出300中的最后一位数是0,然后300/10得到 30 , 30%10 = 0 ,这个0又是最低位的数字。这样子循环下去就能分别得到十进制数的各个位数。同理,在二进制中也可以用同样的方法进行每一位的求解,比如300%2 就能够得到 在二进制情况下的最后一位数,然后我们同样用300/2 = 150, 再
150%2 得到倒数第二位二进制数的值,当然这里是0, 以此循环下去就能够得到所有的二进制位的值,书上面说用递归的方法,正好能符合这样子的要求,因为先计算的后输出符合递归的情况,思路就是这样子的,下面就是代码了,很简单,如果你看了我的话其实完全可以自己做出来,而不用先看代码,毕竟经过自己手工做的还是会记忆深刻一些。
#include <stdio.h>
#include <stdlib.h>
int digui( int b )
{
int a ;
a = b % 2 ;
b = b / 2 ;
if( b >= 1 )
{
digui( b ) ;
}
printf("%d", a ) ;
return 0 ;
}
int main( void )
{
int w ;
printf("请输入1个整数:") ;
scanf("%d", &w ) ;
printf("二进制数为:") ;
digui( w ) ;
return 0 ;
}
- 利用递归将十进制转换为二进制(c primer plus中的例题)
- 利用栈将十进制转换为二进制
- 递归 十进制转换为二进制
- 关于用递归将十进制数转换为二进制数
- 用递归将十进制数转换为二进制数
- 将十进制转换为二进制
- 将二进制转换为十进制
- 关于Java中的递归操作--(以将一个正整型十进制数转换为二进制数为例)
- 用递归将十进制转换成二进制
- C++Primer plus 例题
- 递归将十进制转化为二进制
- 十进制转换为二进制(递归)
- 利用栈实现二进制转换为十进制
- 将二进制数值转换为十进制
- 将十进制的168转换为二进制
- Java实现将十进制转换为二进制
- 将十进制数转换为二进制数
- 将十进制数转换为二进制数
- 永远的颠覆者——奇虎360董事长周鸿祎专访
- Android Toast无延时方法
- 在mvc3中使用Telerik的upload控件上传Zip压缩文件,服务器端解压逐个上传到数据库,使用Ionic.Zip
- python基础知识-字符串的通用操作
- 计算Wikipedia的Pagerank值
- 利用递归将十进制转换为二进制(c primer plus中的例题)
- 动态栈Stack的C语言实现
- 留几手是怎么火起来的?
- [zz]Growth Hacker正席卷全球,你了解它吗?
- C++第14周项目6——银行系统,用文件永久存储
- 关于重定向符>>与>的区别与作用
- 启动tomcat 服务报 The file is absent or does not have execute permission
- 红黑树-详细剖析-如果你有一天或者两天的时间,借助此文,能够学会红黑树的。
- 文件的上传