永发信息网

c语言编程 从键盘输入一个十进制正整数,将其转换成二至十六任意进制的数字字符串

答案:2  悬赏:0  手机版
解决时间 2021-03-29 19:41
c语言编程 从键盘输入一个十进制正整数,将其转换成二至十六任意进制的数字字符串
最佳答案
#include
void convert(unsigned int in, unsigned int type, char *out) {
int i=0, n;
char temp;
while (in > 0) {
n = in % type;
if(n<10){
out[i] = n + '0';
}
else {
out[i] = n-10 + 'A';
}
i++;
in = in / type;
}
out[i] = 0;
if (i == 0) {
out[0] = '0';
out[1] = 0;
}
else {
for (n = 0; n < i/2; n++) {
temp = out[n];
out[n]=out[i - n - 1];
out[i - n - 1] = temp;
}
}
}
int main()
{
unsigned int d;
char t[33];
scanf_s("%u", &d);
convert(d, 2, t);
printf("二进制:%s\n", t);
convert(d, 8, t);
printf("八进制:%s\n", t);
convert(d, 16, t);
printf("十六进制:%s\n", t);
return 0;
}
全部回答
// asdf.cpp : Defines the entry point for the console application.
//
#include "stdio.h"
void _10ton(int x, char *des, int n) //将十进制数x转化为n进制, 结果存于des
{ int i=0, j=0;
char t;

if(n<10)
{ while( x>0 )
{ des[i] = x%n + '0';
i++;
x = x/n;
}
}
else
{ while( x>0 )
{ int tx=x%n;
if(tx<10)
des[i] = tx + '0';
else
des[i] = tx-10+'A';
i++;
x = x/n;
}
}

i--;
for(j=0; j { t = des[i];
des[i] = des[j];
des[j] = t;
}
}
int main(int argc, char* argv[])
{
int x = 28; //十进制数
int n = 14; //转为16进制
char str[81]={'\0'};
_10ton(x, str, n);
printf("%s", str);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
女生挽着男生手臂是什么意思?
京胡和二胡的区别最短
尾盘快速拉升,主力目的何为
求DMA EXPMA用途、使用方法、使用心得、计算
哑铃深蹲多少组
盖亚奥特曼第几集有假阿古奴!
小米米家IH电饭煲 ai音箱能控制吗
有无下图的高清桌面图的 本人显示器分辨率160
2015飞机穿越?
池中物什么意思
“庸人自忧”是什么意思?
足球比赛中一方队员辱骂或侵犯主裁判应该怎么
有关盖房的风水问题,农村二层楼房,坐南朝北
旗子给打印店一般要多久能做好
k599列车到漯河几点
推荐资讯
电脑的内存条能随便换吗?
7月20号晚九点十分的中国新歌声怎么没播
KAPLAN的SAT2数理化教材好用吗
开始4.9级地震然后是余震这样还会不会有大地
前两天在菜市场刚开了一家卖鸭脖子店生意不好
汗液带走了身体里的什么物质?
ABAC的四字词语
4.8+4.8+4.8+4.8=________×________.
电脑怎样设置只能登一个用户名?
货物出口报关单上唛头那里多打了一个单词,【
单选题下面哪种晶体内只有共价键且熔化时化学
OPPOR9P怎么root,用了好几个软件都不能成功
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?