十进制转化为任意进制
今天老师给我们一个五级项目,要求十进制转化为任意进制,转化进制和数字由用户输入,并且用最简练的c语言,有没有哪位大神教一下啊~~~~~球球了 任意进制,这也太没谱了吧,你问一下你们老师,128 进制行不行?如果行的话,请他写个代码让大家学学。 jackz007 发表于 2021-11-17 21:29
任意进制,这也太没谱了吧,你问一下你们老师,1234 进制行不行?如果行的话,请他写个代码让大家 ...
真的就离谱,原话是这样的:用户根据需要输入十进制数和目标数制然后程序运行后输出该十进制数转为目标数制的结果。 jackz007 发表于 2021-11-17 21:29
任意进制,这也太没谱了吧,你问一下你们老师,128 进制行不行?如果行的话,请他写个代码让大家学 ...
真的就一点都不理解 一点头绪都没有。我太难了 执迷不悟0527 发表于 2021-11-17 21:33
真的就一点都不理解 一点头绪都没有。我太难了
你们老师出的这题有问题
题目中没有说明 目标数制的取值范围
那问题就来了,能转128进制吗?
这就离谱。。。我感觉发现新大陆。。。是我太菜了,兄弟加油 //模拟十进制579转成8进制
public class Main {
public static void main(String []args){
int B =579;//需转换的数
int D =8;//基数
int temp[]=new int;
int i=0;
//十进制到任意进制,这个数对基数依次取余,倒序输出,在之前正序输出最后一个商
while (B/D!=0){
temp=B%D;
B=B/D;
i++;
}
System.out.print(B);//输出第一个商
for(int j=i-1;j>=0;j--)
System.out.print(temp);//倒数输出余数
}
}
兄弟,我也是才开始学的,这个玩意是我复制的,你试试呢
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void print(int num, int base){
static char res;
res = '\0';
switch(base){
case 2:
for (size_t i = 128; i > 0; i >>= 1) strcat(res, ((num & i) == i) ? "1" : "0");
printf("0b%s\n", res);
break;
case 8:
printf("0o%o\n", num);
break;
case 16:
printf("0x%x\n", num);
break;
}
}
int main()
{
int num = 67; // 样例
/*一般十进制能转化成二进制(Binary)、八进制(Octal)和十六进制(Hexadecimal)三种*/
print(num, 2);
print(num, 8);
print(num, 16);
return 0;
} 本帖最后由 rt3 于 2021-11-17 22:38 编辑
如果你正在用Windows, itoa这个函数了解下。
但是目前我没装Win, 就不献丑了
Linux下对应的可以 将结果存储为 字符串的函数 是sprintf,但是整个代码也不会太简洁 詹伟艺 发表于 2021-11-17 21:52
//模拟十进制579转成8进制
public class Main {
我试试看熬 詹伟艺 发表于 2021-11-17 21:47
这就离谱。。。我感觉发现新大陆。。。是我太菜了,兄弟加油
我真的裂开了
页:
[1]