求基本数据的转换公式

来源:百度知道 编辑:UC知道 时间:2024/05/03 18:08:42
请教一下十进制转换成二进制八进制十六进制的方法,反过来转换的方法.如何做到又快又准确.谢谢.
我是想问公式,这不是做程序的问题。比如看到1290这个数,如何马上算出来它的二进制八进制十六进制等于多少,反过来也一样。就象笔试一样,给一个数,让你写上换算成其他进制的结果。
不过还是谢谢i777哈,辛苦了。

#include<stdio.h>
#include<math.h>
#include<stdlib.H>
#include<string.h>
#include<ctype.h>
#define MAXLEN 100
unsigned int DataLen(char *s,unsigned int m);
void Str2Num(char* str,unsigned int *p,unsigned int m);
unsigned long M2Ten(unsigned int *p,unsigned int mlen,unsigned int m);
void Ten2N(unsigned long l10,unsigned int *p,int n,unsigned int nlen);
//进制如果少于36,则用0~9A~Z来表示一个数字:比如20进制数"2DG1"
//如果大于36,则用数字得组合表示一位,用空格分可每一位:比如:"37 12 38"来表示40进制得3位
void main()
{
unsigned int m,n,mlen,nlen;
char snumber[MAXLEN];
unsigned int* p;
unsigned long l10;/*l10为m进制转为n进制时作为中转的十进制数*/
int i;
printf("万能进制转换程序。请输入欲转换的数:\n");
gets(snumber);/*将输入的m进制数作为一个字符串接收*/
printf("m进制转为n进制,请输入m和n:\n");
printf("m=");scanf("%u",&m);
printf("n=");scanf("%u",&n);
if(m<2|