用c语言完成进制转换?

写一个2进制和10进制数相互转换的程序, 要求让用户选择输入进制和待转换的数, 根据进制的要求将10进制(1位)转换成2进制, 或将2进制(4位)转换为10进制. 显示结果

caozhy
贵阳老马马善福专门编写代码的老马就是我! 看到lz提问很多,但是一直没有采纳,后台看到信用为“差”,如果问题解决,请及时采纳。
11 个月之前 回复

1个回答

#include "stdio.h"
#include "stdlib.h"

int b2d(char * ch, int acc)
{
    if (*ch == '\0') return acc;
    return b2d(ch + 1, acc * 2 + int(*ch - '0'));
}

void d2b(int n)
{
    if (n == 0) { return; }
    d2b(n / 2);
    printf("%d", n % 2);
}

int main()
{
    printf("[2] for bin to dec or [10] for dec to bin:");
    int type;
    scanf("%d", & type);
    char ch[20];
    scanf("%s", ch);
    if (type == 2)
        printf("%d\n", b2d(ch, 0));
    else if (type == 10)
        d2b(atoi(ch));
    else
        printf("invalid type!\n");
}

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
用C语言完成
编写一个fun()函数,将一个数字字符串转换为一个整数rn
用C语言完成冒泡排序
#include int main() {     int a[10]; int i,j,t,k; printf("输入排序的数字多少"); scanf("%d",&k); for(i=0;i scanf(" %d",&a[i]); printf("\n"); for(j=0;j { for(i=0;i { if(a[i]>a[i+1]) { t=a[i];  
用C语言完成猜数字游戏
#include <stdio.h> int main() { int number,a; a=36; while(1){ scanf("%d",&number); if (number>a){ printf("大了\n"); } else if(number<a){ printf("小了\n"...
各进制转换 c语言
g=0; if(x<0) /*为负数输入做标记*/ { x=-x; g=1; } s=x/y;
c语言栈的进制转换
这是我用c语言写的程序,我的其他资源都是免费的,是对于c语言初学者的帮助比较大的,其中有数据结构,window编程。我也在学c语言,每当我写完一个程序,我都会免费发上来。
C语言进制转换
#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; //实现功能10-&amp;gt;2,10-&amp;gt;8,10-&amp;gt;16,16-&amp;gt;10,16-&amp;gt;8,16-&amp;gt;2 ,8-&amp;gt;2,8-&amp;gt;10,8-&amp;gt;16 int main(){ int n; char s[100]; //C语言中%d直接输入十进制数,%o输入八进制数,...
进制转换(C语言)
p进制数转换为十进制 #include&lt;stdio.h&gt; int main() { int x,n; scanf("%d%d",&amp;x,&amp;n); int sum=0,p=1; while(x!=0){ sum+=x%10*p; x=x/10; p=p*n; } printf...
c语言进制转换
                 第二次课-----进制转换 一、进制转换 1.内存容量 1TB---&amp;gt;1024GB 1GB---&amp;gt;1024MB 1MB---&amp;gt;1024KB 1KB---&amp;gt;1024B byte(字节) 1byte---&amp;gt;8bit(位) 2.进制转换 2---&amp;gt;10:8421法(128 64 32 16 8 4 2 1) 1011 1101---...
c语言_各种进制转换
利用C语言进行任意进制数据之间的转换。十进制转为二进制,八进制,16进制。相反的也可以。
c++/C语言进制转换
主要介绍C++/C语言中进制转换的相关函数,以及一些对字符串处理的函数,并给出了一些实例
C语言 进制转换
整个代码互转只有3个函数 ToHexNum ToDecNum ToBiNum 因为我代码中二进制和十六进制可以通过十进制间接转换,所以实际上只要写 十进制 &amp;amp;lt;-&amp;amp;gt;二进制 十进制&amp;amp;lt;-&amp;amp;gt;十六进制进制 而十进制&amp;amp;lt;-&amp;amp;gt;十六进制,是由上面两个转换组合而来,即二进制&amp;amp;lt;-&amp;amp;gt;十进制&amp;amp
【c语言】进制转换编程
1.编程,将一个十进制转换成任意机制 #include &amp;lt;stdio.h&amp;gt; void main(){ int i=0,base,n,j,num[20]; char k[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; printf(&quot;请输入一个十进制数:\n&quot;); scanf(&quot;%...
C语言:进制转换
题目: #include &amp;lt;stdio.h&amp;gt; int main() { int n,a[100000],i,t; /*t为余数*/ while (scanf(&quot;%d&quot;,&amp;amp;n)!=EOF) { for(i=0;n&amp;gt;0;i++) { a[i]=n%2; n/=2; } for(i=i-...
进制转换C语言
给定一个M进制的数x,实现对x向任意的一个非M进制的数转换。 分析: 二进制、八进制、十六进制向十进制转换:按权展开相加;十进制转换成二进制、八进制、十六进制:整数部分除以基数取余数(取余的方向为从后向前);小数部分乘以基数取整数(取整的方向为从前向后)。 将输入或存储的字符转换为对应的数字,我们可以分两类进行考虑。 第一类是介于’0’到’9’之间的字符,转换成相应的数字0~9时,可利用其AS
C语言的各类进制转换
C语言的各类进制转换,纯手打,欢迎指教。
结构体 c语言 进制转换
结构体 c语言 进制转换
c语言的进制转换问题
进制转换其实很简单,只要掌握一定的方法,可以让你轻松解决。
C语言实现进制转换
基本功能: 1、十进制转换二进制 2、十进制转换八进制 3、十进制转换十六进制 4、二进制转换十进制 5、八进制转换十进制 6、十六进制转换十进制 0、 退 出 代码实现: #include&amp;lt;stdio.h&amp;gt; #include&amp;lt;stdlib.h&amp;gt; #include&amp;lt;math.h&amp;gt; void mune() { pr...
c语言编进制转换
老师布置一个作业,用栈编写一个把十进制转换成其他进制的程序,可是,编了好几天了还不行啊,那位仁兄帮帮忙啊,给个程序好吧!
进制转换(C语言实现)
十进制转换d进制 关键代码 int num,d;//十进制数,进制数 int a[n];//设置数组存放转换后的数 do{ a[i++]=num%d; num/=d; }while(num!=0); for(k=i-1;k&amp;gt;=0;k--)//转换后的数组逆序 printf(&quot;%d&quot;,a[k]); 例题1(PAT A1019) 1019Gen...
hdu2031 进制转换(C语言)
Problem Description 输入一个十进制数N,将它转换成R进制数输出。   Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(210)。   Output 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
c语言实现进制转换
c 编程实现十进制与二、八、十进制的转换以及二、八、十进制转换为十进制
【C语言】第五篇·进制转换
一、计算机中的进制     是一种计数方式,数值的表示形式 二、常见的进制     二进制、十进制、八进制、十六进制 三、进制的书写形式     二进制:0b/0B+数值     十进制:数值     八进制:0+数值     十六进制:0x+数值 四、进制转换     1. 进制转换三要素
c语言(进制转换)
#include     #include     int int_pow(int x,int y)//用于计算倍数     {         int i,result=1;         for(i=1;i         {             result*=x;         }         return result;     }     void
c语言学习笔记6之进制转换
我们要知道我们的电脑只能识别1和0,而它识别的方式就是通过电路的接通与断开也就是开关的开和闭。所以一个开关有两种情况,即1和0 两个开关有4种情况,11(开开),10(开关),00(关关)01(关开) 由此引申到了二进制,即逢二进一,例如1为1,2为10,4为100,8为1000 我们习惯都是用十进制来表示数,所以涉及到了进制的转换常用的进制有二进制,八进制,十进制,十六进制。生活中也有进制
数进制转换 --栈(c语言)
#include "stdio.h"rn#include "iostream.h"rn#include "malloc.h"rn#include "stdlib.h"rn#include "math.h"rn#include "windows.h"rn#define ok 1rn#define error 0rn#define overflow 0rn#define stack_init_size 100rn#define stackincrement 30rntypedef structrn int *base;rn int *top;rn int stacksize;rnsqstack;rnsqstack initstack(sqstack s)rn s.base=(int*)malloc(stack_init_size*sizeof(int));rn if(!s.base)exit(-2);rn s.top=s.base;rn s.stacksize=stack_init_size;rn return (s);rn rnint push (sqstack s,int e)rn if(s.top-s.base>=s.stacksize)rn s.base=(int*)realloc(s.base,(s.stacksize+stackincrement)*sizeof(int));rn if(!s.base)exit(overflow);rn s.top=s.base+s.stacksize;rn s.stacksize+=stackincrement;rn rn *s.top++=e;rn return ok;rn rnint pop (sqstack s,int e)rn if(s.top==s.base)return error;rn e=*--s.top;rn return ok;rnrnrnvoid main()rnint n,x,e;sqstack s;rn initstack(s);rn cout<<"plesae input the number:"<>n;rn cout<<"plesae input the next number:"<>x;rn while(n)rn push(s,n%x);rn n=n%x;rn rn while(!(s.base==s.top))rn pop(s,e);rn cout<
C语言其他进制转换十进制
#include #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;math.h&amp;gt; #include &amp;lt;string.h&amp;gt; using namespace std; #define p 16 //进制 int main (){ char str[9] = “0”; cin &amp;gt;&amp;gt; str; char * a = str; int len =...
进制转换(C语言实验及应用)
由C语言编写,条理清晰,可读性强,可以在2到16进制之间相互转换,应用性强
进制转换软件,c语言写的
输入一个进制数,输出其他进制,方便,简单。
C语言进制转换相关函数
C语言进制转换相关函数 所需头文件 #include &lt;stdio.h&gt; #include &lt;string&gt; #include &lt;string.h&gt; #include &lt;map&gt; #include &lt;iostream&gt; using namespace std; 十进制转二进制 //十进制转二进制 string Decimal_to_...
C语言-十进制十六进制转换
C语言-十进制十六进制转换1.Rain_Conversion2.Gali_Conversion    一个朋友提到十进制数转十六进制后以字符串输出,基于此写了两段代码以供参考,其中涉及数组成员反转,指针等特别基础的用法。仅娱乐。 1.Rain_Conversion #include &amp;amp;quot;stdio.h&amp;amp;quot; #include &amp;amp;quot;string.h&amp;amp;quot; #include &amp;amp;quo
进制转换-c语言代码实战
进制转换
C语言写的进制转换系统
C语言写的进制转换系统,支持二进制,八进制,十进制,十六进制任意转换。界面友好
C语言栈实现进制转换
用c语言实现进制转换,分享给大家,谢谢指导
C语言习题5.18--进制转换
题目描述 输入一个十进制数N,将它转换成R进制数输出。 输入 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R 输出 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。 样例输入 7 2  23 12  -4 3 样例输出 111  1B  -11
C语言栈的实现进制转换
栈是限定仅在表尾进行操作的线性表。因此,对栈来说,表尾端有其特殊含义,成为栈顶,相应地,表头端称为栈底。下面用C实现栈的基本操作以及利用栈来实现一个进制转换程序 #include <iostream> #include <stdio.h> #include <stdlib.h>using namespace std; #define STACK_INIT_SIZE 100 #define STACK
c语言:顺序栈的应用-进制转换
#include #include #define STACK_INIT_SIZE 100 #define STACK_INCREMENT 10 using namespace std; typedef struct Stack //结构体定义 { int *elem; //数据域 int top; //顺序栈栈顶 int stacksize; //顺序栈当
一键进制转换C语言代码
数据结构课程设计作业,实现进制转换功能。 输入一个数(任意进制)转换到其他进制输出。 https://github.com/ahojcn/Practice/tree/master/DataStructure/ClassDesign
进制转换,C语言数据结构与算法
输入任意一个十进制数,转换成对应的R进制
第十四周:C语言:进制转换
问题:将十进制转换成二进制。 代码: #include int main() { int a[32]={0},i,j,n; scanf("%d",&n); i=0; while(n>0) { a[i]=n%2; n/=2; i++; } if(i>0) i--; for(j=i
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数