C语言递归函数在进制转换中的应用
创作时间:
作者:
@小白创作中心
C语言递归函数在进制转换中的应用
引用
1
来源
1.
http://www.cdweb.net/article/degiidg.html
C语言递归算法在进制转换中的应用主要包括二进制转十进制、十进制转八进制以及十进制转二进制的递归实现方法。下面将通过具体的代码示例和步骤说明,帮助读者理解递归算法在进制转换中的应用。
二进制转十进制
- 首先在主函数中设置一个函数
Sum
,另外定义了一个数组array[8]
,用于存放输入的八位二进制数。然后使用了一个for
循环语句,用于输入八位二进制数。
定义一个函数
int Math(int n)
,这个函数用来计算二进制每一个位置上的数字所表示的实际值。打开C语言编译器,新建一个初始的
.cpp
文件,例如:test.cpp
。在test.cpp
文件中,输入C语言代码:
int a = 0b10000001;
printf("%d", a);
思路:十进制整数转换为二进制整数采用除2取余,逆序排列法。
二进制转十进制时,
n
为输入的二进制数,d
用来处理该数。k
为标志位,当k
为1时表示输入的数有问题,需要重新输入。
十进制转八进制
在C语言中,使用递归将10进制转化为8进制,可以使用
printf
函数的格式输出%o
即可。如果需要得到转换后的字符串,使用sprintf
函数即可。10进制数10转换为8进制的转换过程如下:
10/8 = 1 ...(余2)
1/8 = 0 ...(余1) (1/8中的1是上次运算的商)
所以10的8进制数为12。在C语言中,用012
来表示8进制12,也即在8进制数的前面加一个数字0。
- C语言打印八进制是通过
%o
(百分号和小写字母o组成)打印输出的。例如,实现以下代码段:
int octal = 017;
printf("%o", octal);
十进制转二进制
在C语言中,用函数的递归调用将十进制数转化为二进制数。可以按手工转换规则进行程序转换。整数占四个字节,每字节8位,共32位。所以,可以定义一个32位的数组来存储转换结果。循环将整数进行除2取余数,余数存储到数组中。
10进制转化为2进制的算法非常简单,不断除以2,每次的余数为低位数,直到数为0。可使用简单的递归实现这一过程。
这个主要考察递归的思想,只要你把递归的思想理解清楚了,就OK了。
热门推荐
感恩节特辑:用古诗词表达感恩的诗意方式
王俊凯感恩行动:支持朋友回馈社会,传递正能量
从传统文化到现代职场:如何掌握送礼的艺术
思念到极致的心理表现与应对方法
中医养生保健:五大方面调养身心
思念到极致的心理机制,你怎么看?
全国铁路1月5日起调图,客货列车分别增230列和91列
从梳理到饮食:博美犬换毛期科学护理指南
西游记:一场穿越神话与文化的奇幻之旅
肝癌放疗期饮食全攻略:5种推荐食材+4大注意事项
补中益气丸:气虚型便秘的克星
妈咪爱枯草杆菌二联活菌颗粒:便秘治疗的新选择
36万肝癌患者新希望:精准放疗技术实现重大突破
SBRT控制率达95%,钇90微球助中晚期肝癌患者临床治愈
车贷月供,你真的算清楚了吗?
私人贷款 vs 银行车贷:购车贷款如何选择?
秋季口苦的中医调理法:饮食作息全方位指南
沈阳飞三亚:5天4夜海岛度假,4200元玩转热带天堂
哈尔滨直飞三亚航线开通,4.5小时抵达海岛度假天堂
胃溃疡了怎么办?这七种食物万万吃不得,快来看看吧
食管炎适合吃什么饭菜
反流性食管炎什么运动好
压力大、乱熬夜,小心“火烧心”找上门!
贵阳开阳:湿地公园、地质奇观等十大景点精选
普洱至昆明5天4晚深度游:古茶园、傣族园到丽江古城
普洱到昆明自驾:玉溪线vs曲靖线,哪条更值得走?
普洱至昆明自驾攻略:玉溪线景致优美,曲靖线文化厚重,两条线路各具特色
五代十国军事战略揭秘:枢密使的秘密
五代十国:权力游戏的巅峰对决
老赖欠钱不还?法院教你这几招,让他无处遁形!