C语言实现进制转换——超图面试题
递归:递归的原理,就是自己调用自己本身。存在一个顺序的问题,如果在递归前的是顺序执行,递归后的是逆序执行,如下:
void gogogo()
{
//递归之前
gogogo();
//递归之后
}
递归
下面实现进制转换就是利用的这个原理。
代码如下:
#include<stdio.h>
#include<stdlib.h>
void toletter(int num)
{
switch (num)
{
case :
printf("%c", 'a'); break;
case :
printf("%c", 'b'); break;
case :
printf("%c", 'c'); break;
case :
printf("%c", 'd'); break;
case :
printf("%c", 'e'); break;
case :
printf("%c", 'f'); break;
default:
printf("%d", num); break;
}
}
//十进制转二进制
void convertto2(int num)
{
if (num ==|| num==)
{
printf("%d",num);
}
else
{
int n=num / ;
convertto2(n);
printf("%d",num %);//如果把这句话放在convertto2(n);之前就是顺序执行,显示是逆序,所以实现了余数的倒序排列。
}
}
//十进制转八进制
void convertto8(int num)
{
if (num < )
{
printf("%d", num);
}
else
{
int n = num / ;
convertto8(n);
printf("%d", num % );
}
}
//十进制转十六进制
void convertto16(int num)
{
if (num<)
{
toletter(num);
}
else
{
int n = num / ;
convertto16(n );
toletter(num % );
} } void main()
{
int num;
printf("请输入一个整数");
scanf_s("%d",&num);
printf("\n十进制转二进制:");
convertto2(num);
printf("\n十进制转八进制:");
convertto8(num);
printf("\n十进制转十六进制:");
convertto16(num);
system("pause");
}
递归图解
C语言实现进制转换——超图面试题的更多相关文章
- 一起talk C栗子吧(第七回:C语言实例--进制转换)
各位看官们.大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们.上一回中咱们说的是生成随机数的样例.这一回咱们说的 ...
- C语言关于进制转换,补码, 整数的位操作
菜单导航: 1.二进制.八进制.十进制.十六进制的相互转换 2.原码.反码.补码 3.举例证明整数在计算机内是以补码的形式存在(以负数为例) 4.整数的位操作:按位且&.或|.异或^.取反~ ...
- C语言基础——进制转换 / 数据表示
第一部分:进制转换 二进制:由0~1构成,逢2进1 八进制:由0~7构成,逢8进1 十六进制:由0~9.A~F构成,逢16进1 两个基本概念 基数:n进制基数为n 123.4 = 1*10^2 + 2 ...
- C语言实现进制转换
#include<stdio.h> int main() { char ku[16]={'0','1','2','3','4','5','6','7','8','9','A','B ...
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符. 分类: iOS学习 c语言基础 2015-06-10 21:39 25人阅读 评论(0) 收藏
二进制:以0b开头,只有0和1两种数字.如0101 十进制:0~9十个数字表示.如25 十六进制:以0~9,A~F表示,以0X开头.如0X2B 十进制转换为X进制:连除倒取余 X进制转换为十进制:按权 ...
- C语言拼接字符串以及进制转换
#include<stdio.h> #include<stdlib.h> #include<string.h> char *join1(char *, char*) ...
- C语言 进制转换
这个程序仅仅是由十进制转换为其他进制的过程,其转换的规则如下图所示. 我使用的思路:首先在除基的过程中用一个数组保存余数,然后在输出进制转换结果的时候倒序输出,并且在输出前判断余数是否大于10,如果大 ...
- 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符
02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...
- [No000071]C# 进制转换(二进制、十六进制、十进制互转)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
随机推荐
- bigdata_批量机器执行通用脚本
经常有这样的场景,需要批量验证一些配置或者机器,执行一些命令.例如 echo $PATH 等等 这里分享一个批量执行脚本 脚本名称 deployCommnd.sh 运行demo : sh depl ...
- .net中的设计模式---单例模式,涉及lock的用法
.客户端代码 static void Main(string[] args) { Singleton singleton2 = Singleton.GetInstance(); Singleton s ...
- Android "QR二维码扫描"
支持灯 扫描结果 支持 抄.分享.浏览打开(超链接) 自己主动保存扫描记录 划删除 和源代码 git: http://git.oschina.net/892642257/QRCode csdn(0分) ...
- 【LeetCode】 sort list 单清单归并
称号:Sort a linked list in O(n log n) time using constant space complexity. 思路:要求时间复杂度O(nlogn) 知识点:归并排 ...
- 还是畅通project(杭州电1233)
还是畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- Codeforces 437D The Child and Zoo(贪心+并查集)
题目链接:Codeforces 437D The Child and Zoo 题目大意:小孩子去參观动物园,动物园分非常多个区,每一个区有若干种动物,拥有的动物种数作为该区的权值.然后有m条路,每条路 ...
- C# 笔试题,看你会几道题
1. Which interface you need to implement to support for each? IEnumerator IEnumerable ICompare ...
- Qt Creator(编译器MinGW)中使用__attribute__(packed)的问题
http://www.bttr-software.de/forum/mix_entry.php?id=11767 假设我们从串口中读到一串数据,当我们想要处理这串数据的时候通常是这样做的: 1 将这些 ...
- C语言运算符表(优先级)
http://www.is.pku.edu.cn/~qzy/c/operator.htm
- 使用rem设计移动端自适应页面一(转载)
1.困扰多时的问题 在这之前做Web App开发的的时候,在自适应方面一般都是宽度通过百分比,高度以iPhone6跟iPhone5之间的一个平衡值写死,我们的设计稿都是iPhone5的640 * 11 ...