数制之间的转化(2,8,10,16) C语言

来源:百度知道 编辑:UC知道 时间:2024/06/02 16:57:25
C语言 数制之间的转化(2,8,10,16),例如输入一个2进制,可以转换成其他3个进制数(同时输出,或选一个进制输出)。保留一位数,如2进制1000.1000,10进制10.5等(即要能实现浮点型的转换)。请看请要求。
知道是比较难点。 程序是要可行 ,请先运行下再发上来。
没办法啊 就只有那么点分啊

现在的劳动力可真廉价

不难,自己写吧~~

#include<stdio.h>
#include<math.h>

struct stack {
int data[100];
int n;
};

void INIT(stack &s) {
s.n = 0;
}

void PUSH(stack &s, int e) {
s.data[s.n++] = e;
}

POP(stack &s) {
return s.data[--s.n];
}

void f1(int m, int n) {
stack s;
INIT(s);
int e;
while(m) {
PUSH(s, m%n);
m /= n;
}
while(s.n) {
e = POP(s);
if(n<10) printf("%d", e);
else e>=10? printf("%c", char(e-10+'A')) : printf("%d", e);
}
}

void f2(double m, int n) {
while(m) { if(n<10) printf("%d", int(m*n));
else m*n>=10? printf("%c", char(int(m*n)-10+'A')) : printf("%d", int(m*n));
m = m*n - int(m*n);
}
}

void f(double m, int n) {
f1(int(m), n