C语言编程,输入十进制数输出十六进制和八进制

是新手 要详细过程 帮解释清 在线等 谢~~~

#include <stdio.h>
#define N 8
void tran(int num,int k)
{
int arr[N],i;
for (i=0;i <N;i++)
{
arr[i]=num%k;
num=num/k;
if (num==0)
break;
}
printf("转换为%d进制数为: ",k);
for (;i>=0;i--)
switch (arr[i])
{
case 10: printf("A");break;
case 11: printf("B");break;
case 12: printf("C");break;
case 13: printf("D");break;
case 14: printf("E");break;
case 15: printf("F");break;
default: printf("%d",arr[i]);
}
printf("\n\n\n");
}
int main()
{
int num,choo;
loop:    printf("请选择功能:0.退出  1.十进制转二进制  2.十进制转八进制  3.十进制转十六进制\n");
scanf("%d",&choo);
switch (choo)
{
case 1:
printf("请输入要转换的十进制数:");
scanf("%d",&num);
tran (num,2);
goto loop;
case 2:
printf("请输入要转换的十进制数:");
scanf("%d",&num);
tran (num,8);
goto loop;
case 3:
printf("请输入要转换的十进制数:");
scanf("%d",&num);
tran (num,16);
goto loop;
case 0:break; 

default :
printf("输入有误!请重新输入!\n");
goto loop;
}
}

拓展资料

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

(参考资料 百度百科 C语言

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-11-04

可以通过下面的公式解决

#include<stdio.h>

const int maxn = 128;

const int index8 = 8;

const int index16 =16;

int main()

{int Array8[maxn];

int Array16[maxn];

int n, cot8 = 0;

scanf("%d", &n);

int m = n, cot16 = 0;

while(n) {Array8[cot8++] = n % index8;

n /= index8;}

while(m) {Array16[cot16++] = m % index16;

m /= index16;}

int i;

for(i = cot8 - 1; i >= 0; i--)

printf("%d", Array8[i]);

puts("");

for(i = cot16 - 1; i >= 0; i--)

扩展资料:

十进制转十六进制的具体方法:

对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

10进制数转换成十六进制数,这是一个连续除以16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。

参考资料:百度百科-十六进制至十进制转换

本回答被网友采纳
第2个回答  推荐于2017-09-30

可以格式化输出。

#include <stdio.h>

int main()
{
    int n;
    printf("输入一个数:");
    scanf("%d", &n);
    printf("八进制: %o\n", n);
    printf("十六进制: %x\n", n);
    return 0;
}

第3个回答  2009-10-26
#include <stdio.h>
#define N 8
void tran(int num,int k)
{
int arr[N],i;
for (i=0;i <N;i++)
{
arr[i]=num%k;
num=num/k;
if (num==0)
break;
}
printf("转换为%d进制数为: ",k);
for (;i>=0;i--)
switch (arr[i])
{
case 10: printf("A");break;
case 11: printf("B");break;
case 12: printf("C");break;
case 13: printf("D");break;
case 14: printf("E");break;
case 15: printf("F");break;
default: printf("%d",arr[i]);
}
printf("\n\n\n");
}
int main()
{
int num,choo;
loop: printf("请选择功能:0.退出 1.十进制转二进制 2.十进制转八进制 3.十进制转十六进制\n");
scanf("%d",&choo);
switch (choo)
{
case 1:
printf("请输入要转换的十进制数:");
scanf("%d",&num);
tran (num,2);
goto loop;
case 2:
printf("请输入要转换的十进制数:");
scanf("%d",&num);
tran (num,8);
goto loop;
case 3:
printf("请输入要转换的十进制数:");
scanf("%d",&num);
tran (num,16);
goto loop;
case 0:break;
default :
printf("输入有误!请重新输入!\n");
goto loop;
}
}
第4个回答  推荐于2017-10-04
#include<stdio.h>
main()
{int i,d,m,n;
char s[8];
scanf("%d",&n);
i=0;
do{
m=n/8;
d=n%8;
s[i]='0'+d;
i++;
n=m;
}
while(n!=0);
for(i--;i>=0;i--)
putchar(s[i]);
}
//十进制转八进制 十六进制方法类似

#include<stdio.h>
void main()
{
int a;
scanf("%d",&a);
printf("%o, %x",a,a);
getchar();
getchar();
}

参考资料:http://hi.baidu.com/camel520duck/blog/item/348ad3bf9018340d18d81f10.html

本回答被提问者采纳

C语言编程,输入十进制数输出十六进制和八进制
const int index16 =16;int main(){int Array8[maxn];int Array16[maxn];int n, cot8 = 0;scanf("%d", &n);int m = n, cot16 = 0;while(n) {Array8[cot8++] = n % index8;n \/= index8;} while(m) {Array16[cot16++] = m % index16;m \/= index16;} int i;fo...

C语言编程,输入十进制数输出十六进制和八进制
arr[i]);}printf("\\n\\n\\n"); } int main() {int num,choo; loop: printf("请选择功能:0.退出 1.十进制转二进制 2.十进制转八进制 3.十进制转十六进制\\n");scanf("%d",&choo);switch (choo){case 1:printf("请输入要转换的十进制数:");scanf...

C语言如何输入十进制整数?
C代码和运行结果如下:输入十进制整数,输出其十进制、八进制和十六进制形式 附源码:include <stdio.h> int main() { int n;scanf("%d", &n);printf("十进制:%d\\n", n);printf("八进制:%o\\n", n);printf("十六进制:%x\\n", n);return 0;} ...

编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制...
int main(int argc, char* argv[]){ int num;scanf("%d",&num);printf("%o",num);return 0;}

【c语言】输入一个十进制数,转换成对应的八进制数和十六进制数并...
int x,int n){int a[33],i; for(i=0;x;x\/=n)a[i++]=x%n; for(i--;i>=0;i--) if(a[i]<10)printf("%d",a[i]); else printf("%c",a[i]+55); printf("\\n");}int main(){int x; scanf("%d",&x); printf("%d的八进制:",x);dec2n(x,8)...

c++如何输入一个十进制的数,输出该数对应的八进制和十六进制数。要求八...
用printf就可以8进制是%o,16进制是%x 例如 int a = 100;printf("8进制:0%o\\n16进制:0x%x", a, a);

将10进制数转化为16进制数和8进制数的c语言代码?
void func(int x)\/\/x此处是10进制数,转化成十六进制 { int i=0; \/\/i 为一个局部变量,在func函数中有用 while(x!=0){ a[i]=x%16;x\/=16;i++;} for(int k=i-1;k>=0;k--){ cout<<a[k];} cout<<endl;} void func2(int y){ int i=0; \/\/ i 为一个局部变量在func...

c语言从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数...
include"stdio.h"main(){ int i;printf("enter a number");scanf("%d",&i);printf("\\n八进制为%o",i);printf("\\n十六进制为%x",i);}

C语言,输入一个十进制数,转换位十六进制和八进制输出,要求定义不同函数...
int a=24;printf("八进制a=%o;十六进制a=%x\\n",a,a);

用C语言编程"输入一个十进制整数,打印输出对应的八进制数和十六进制数...
include "Stdio.h"include "Conio.h"main(){ int a;scanf("%d",&a);printf("%x,%o",a,a);getch();} x 无符号以十六进制表示的整数 0 无符号以八进制表示的整数

相似回答