C语言进制转化

KyLin Wu 2019-03-30 03:54:28
方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
然后将余数从下往上连在一起就是该进制数。
其它进制同理。
#include<stdio.h>
static bs=0;
void change(int num,int jz,char*z)
{
int n;
if(num)
{
change(num/jz,jz,z);
n=num%jz;
if(n<10)
z[bs++]=n+'0';
else
z[bs++]=n+55;
}
}
void main()
{
int num,i=0,jz;
char z[100]="0";
printf("请十进制数据输入数据:");
scanf("%d",&num);
printf("请输入你想转换的进制:");
scanf("%d",&jz);
change(num,jz,z);
puts(z);
}
...全文
321 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
marwi_study 2019-03-30
  • 打赏
  • 举报
回复
进制转换用递归可能更加好办一点,因为符合人的思维
puthon 2019-03-30
  • 打赏
  • 举报
回复
关于void main()可以参考这里http://www.stroustrup.com/bs_faq2.html#void-main
puthon 2019-03-30
  • 打赏
  • 举报
回复
static bs=0; 要声明一下变量类型,比如static int bs=0; 同时建议main函数返回值最好不用void c++实现十六进制的转换https://blog.csdn.net/pyuxing/article/details/88847810,关于stl的使用不能再舒服了,

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧