编一个c程序 C++进制转换器:十进制→二、八、十六进制,二进制→八、十、十六进制,八进制→十、二进制

具体要求:1)系统以菜单形式工作(选择哪种转换:)
2)数据输入:从键盘输入一个十、二、八进制的数(先输入进制数,再输入数字,并检查输入数据的有效性,若错误,则重新输入)
3)若输入数据为十进制,则将其转换成相应的二、八、十六进制(可通过提示选择其操作类型)
4)若输入数据为二进制,则将其转换成十、十六进制(可通过提示选择其操作类型)
5)若输入数据为八进制,则将其转换成二、十进制(可通过提示选择其操作类型)
急需,在线等 防止无人回答浪费积分,只设置了10分,收到满意答案后我会追加100
要求中的第2条 是 任意输入其中的一种进制数,不是同时输入三个

用菜单,多乱哪,都显示出来,很容易的。

#include <stdio.h>
#include <string.h>

void main()
{
char aaa[5];
unsigned char bbb, ccc, i, k, Err = 0;
long unsigned int nnn = 0;

printf(" \n请输入数字 (0~9, A~Z): "); gets(aaa);
printf(" \n 当前进制 (2~36): "); scanf("%d", &bbb);
for (i = 0; i < strlen(aaa); i++) {
if (aaa[i] >= '0' && aaa[i] <= '9') k = aaa[i] - 48;
if (aaa[i] >= 'A' && aaa[i] <= 'Z') k = aaa[i] - 55;
if (k < bbb) nnn = nnn * bbb + k;
else {Err = 1; break;}
}
if (!Err) {
printf ("\n 2,4,8,10,16进制,全部输出如下:");
printf ("\n\n 2: ");
for (i = 32; i > 0; i--) printf ("%d", (nnn >> (i - 1)) & 1);
printf ("\n\n 4: ");
for (i = 16; i > 0; i--) printf ("%d", (nnn >> (2 * (i - 1))) & 3);
printf ("\n\n 8: %o ", nnn);
printf ("\n\n 10: %u ", nnn);
printf ("\n\n 16: %X \n\n", nnn);
}
else printf ("输入错误 ! \n");
}
========================================
程序运行显示画面如下:
========================================
请输入数字 (0~9, A~Z): ABCD1357

当前进制 (2~36): 16

2,4,8,10,16进制,全部输出如下:

2: 10101011110011010001001101010111

4: 2223303101031113

8: 25363211527

10: 2882343767

16: ABCD1357

Press any key to continue
========================================追问

呵呵 你这个试过啦,挺好的!高人啊

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-14
我帮你,给我邮箱,我做个mfc给你发到邮箱追问

谢谢啦

编一个c程序 C++进制转换器:十进制→二、八、十六进制,二进制→八...
if (k < bbb) nnn = nnn * bbb + k;else {Err = 1; break;} } if (!Err) { printf ("\\n 2,4,8,10,16进制,全部输出如下:");printf ("\\n\\n 2: ");for (i = 32; i > 0; i--) printf ("%d", (nnn >> (i - 1)) & 1);printf ("\\n\\n 4: ");f...

编写一个VC++程序把十进制数转化成二进制,八进制,十六进制。
printf("please input the integer:"); \/\/要转换的十进制数 scanf("%ld",&n);printf("please input the radix:"); \/\/ 进制数,可以为2、8、16 scanf("%d",&radix);trans(n,radix,a); \/\/调用函数 \/\/for(int i=strlen(b)-1;i>=0;i--)\/\/ printf("%c",*(b+i));...

c++函数编程实现自然数的十进制、二进制、八进制、十六进制转换
else cout<<char(num[j]+'A'-10); \/\/ 如果是大于9的数字则转化为字符输出 cout<<endl;} int main(){ int n,choice;cout<<"输入一个整数:"; cin>>n;do { cout<<"输入需要转换的进制:2-9,16,32(输入0退出)";cin>>choice;switch(choice){ case 2: Transform(n,2); ...

求c++各进制转换的代码(double浮点数)
void octalsys();void hex();void main(){ printf("进制转换器\\n");int select;do { printf("===\\n");printf("0、退出\\t1、十进制~二进制\\t2、十进制~八进制\\t3、十进制~十六进制\\n");printf("请选择功能:");scanf("%d",&select);if(select==0){ break;} switch(select){ cas...

用C++把十进制转换成二、八、十六进制的程序代码~~
int main(){ int n,x;cout<<"请输入十进制整数以及要转化成的进制数,以空格分开:\\n";cin>>n>>x;switch (x){ case 8:cout<<"八进制:"<<oct<<n<<endl;break;case 16:cout<<"十六进制:"<<hex<<n<<endl;break;case 2:cout<<"二进制:";erjinzhi(n);break;default:cout<<"...

用C或者C++编程,输入一个10进制正整数,然后输出它所对应的八进制、十六...
现在提供一个可以进行十进制到二进制、十六进制、八进制的转换程序,同时对于输入的十进制数没有要求,可以是正数、负数、整数和小数等都可以的,同时可以进行十进制到二进制到十六进制的转换的,源程序如下:include<stdio.h> include<math.h> void main(){ int i=0,n,j,a[20],b[20],k,c=0...

c++编程序将2进制数转为10进制数
{ printf("%c",dig[ans[i]]);} printf("\\n");return ;} int main(){ int number,base;printf("请输入一个数\\n");scanf("%d",&number);printf("你要转换的进制数(2,8,16)\\n");scanf("%d",&base);printf("转换后的数为\\n");change(number,base);return 0;} 希望能帮助你!

C++编写程序,输出任意两个数之间每个数值的二进制、三进制、八进制...
可以用一个自定义的进制转换函数,用来处理二进制三进制的输出,其余的八进制,十进制和16进制可以使用C++语言自带的格式输出函数进行输出。include <iostream> using namespace std;void dec2k(int n,int k){ if(n>k-1)dec2k(n\/k,k);printf("%d",n%k);} int main(){ int a,b,i;scanf...

...转换函数把这个十进制数转换成二、八、十六进制数。
\/* h[k]=c[f16]; *\/ printf("(%d) %d =%c= ",n16,f16,c[f16]);if (n16>2){ k++;h[k]=c[f16];n16=-1;f16=0;} n16++;} printf("\\n\\nD TO B %d --> ",no);for(i=15;i>=0;i--)printf("%d ",b[i]);printf("\\n\\n8--- %c%c%c%c%c",o[5],o...

用C++如何编程十进制转换成十六进制的程序,谢谢!
void main(){ int k,m;cout<<"输入要转换的进制数(2,8,16...):";cin>>k;\/\/直接改为K=16即可实现十进制转换为十六进制 cout<<"输入一个10进制数:";cin>>m;convfrom10tok(m,k);cout<<"对应的"<<k<<"进制数:"<<endl;\/*for(i=n-1;i>=0;i--)if(a[i]>9) cout<...

相似回答
大家正在搜