C语言进制转换的程序

C语言进制转换的程序,第1张

#include <stdio.h>

void transfer(int A[], int *c, int n, int b)

{

int i = 0

while(n>0)

{

A[i++] = n % b

n /= b

}

*c = i

}

int main()

{

int 行烂a[32],c,n,b

printf("输入整数和要转换为的进制:")

scanf("%d %d",&n,&b)

if( n<0 || 枣郑b>9 || b< 2)

{

printf("数档岩漏据非法。")

return 0

}

transfer(a,&c,n,b)

printf("结果为:")

while(--c >= 0)

{

printf("%d",a[c])

}

return 0

}

给你打个简单的,我已蔽御经测试了,

#include<stdio.h>

void 携衡main()

{

int a

printf("请输入一个十进制数\n")

scanf("%d",&a)

printf("该数的十六进制是:%x\n",a)

printf("该数辩并做的八进制是:%o\n",a)

}

C语言中实现10进制转换为任意进制的过程为:

定义数帆雀组int rs[32],保存转换后的数据,整数的转换结果最多32位(4字节*8位)

定义一个数组char map[]={'0','1','2','3',...,'9','A','B',...'F'},完成相应数值对应的转换后的字符

输入10进制数(整数)num

转入转换进制基数(2-16)ind

循环对num进行模ind运算,得磨手到余数存储到数组rs中

num缩小ind倍

当num为0时结束循环

反向输出数组rs中对应的各元素对应的map字符,得到转换结果

参考代码:

#include <stdio.h>

int main()

{

    char map[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','瞎轿嫌F'}

    int i,c[32],num,ind

    do {printf("input num: ")scanf("%d", &num )}while(num<0 )

    do {printf("input ind: ")scanf("%d", &ind )} while( ind>16||ind<2)

    i=0

    do {

        c[i++]=num%ind

        num/=ind

    } while(num!=0) 

    for(i--i>=0i--)

        printf("%c",map[c[i]] )

    printf("\n")

    return 0

}

运行结果:

input num: 100

input ind: 2

1100100

input num: 100

input ind: 8

144

input num: 100

input ind: 16

64


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12487637.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-25
下一篇2025-08-25

发表评论

登录后才能评论

评论列表(0条)

    保存