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

}

1、为了完成进制的转换,在主函数中声明了个函数Sum,主要用于将二进制的每一位转换为十进制后的数相加,返回值就是相加后的和。

另外定义了一个数组array[8],用于存放输入的八位二进制数。

2、然后使用了一个for循环语句,用于输入八位二进制数。

3、在Sum函数中,又声明了一个power函数,power函数的作用是求2的n次方。

4、接着,使用了一个for循环语句,i用于控制循环的次数,n从最高的指数7开始每次循环减一,如果指数大于或等于零的,就进行循环。

5、在power函数中,如果b等于零,即指数为零,则返回1,否则就进入一个循环,j用于控制循环次数,有疑问的可以用笔算算乘2的个数对不对,最后将i返回。

6、最后看一下运行的结果。


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

原文地址: https://outofmemory.cn/yw/11254157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存