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

}

常用的进制二进制、八进制皮凯、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是常用的0-9是逢10进一位。具体 *** 作如下:

1、点击左下角---计算机。

2、点击计算器之后d出一个计算器的标准模板。

3、然后点击左上角的一个菜单选项,d出程序员的字样。

4、点击就可以进入到进制转换的地方了。

5、这里随便输入一个数字就可以看到相应的燃手唤进制位数显示了。

6、除此之外计算器还可以实现多种功能。

注意事项

1、0、1这两种状态,代表开关状态,高低电薯铅平的转换,逻辑电路与非门、真或假等等。

2、量子计算机中,量子纠缠对的状态,一个为0,则另一个是1,也是二进制。

在这里献丑了!

1.将你输入的数通过字符串的方式存储是方便一下的计算的

正如你举得例子,输入137 数组中存入的是 字符型的137 要将

里面的每个字符型的数字转换成数值型的数字就得 *p-'0',因为

字符存储时实际存储的是字符的ASC码, 例如 输入 1(字符型)ASCII码为

49 若不减去0的ASC码 就会以49去参加运算哪简

这个while循环是用于数制转换的.将八进制转换成10进制,其实就是将8进制数码按权展开,137=1*8^2+3*8^1+7*8^0

2这个while就是这个用处,一步一步看下去,加入输入为137存储为字符137

第一次芹缓握是将字符型的1减去0的asc码就得到了数值型的1 1本来是最高位应该是但是这里得到的只有系数(姑且叫做系数吧而权为8^0=1),由于后面还有两个数,这样通过循环n=n*8+*p-'0'将1的权值提升到了8^2,对第二位也类嫌庆似.

3.要进行浮点数的进制转换就得找准小数点的位置.然后按照类似的方法就可以了


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存