C进制转换,十六到八等

来源:百度知道 编辑:UC知道 时间:2024/06/15 11:29:01
我知道十六进制到十进制,十到二进制,别的啊,二进制负数怎么办,怎样直接十六到八转换。

谢谢楼上的朋友
真细心
#include<stdio.h>
#define size 64
void transform(int n1,char c[size],int n2)
{
int a[size]={0},j,i=0;
long int num=0;
if(n1>10)
{
while(c[i])
{
if(c[i]>='0'&&c[i]<='9')----》误写为
if(c[i]>'0'&&c[i]<'9')
num=num*n1+c[i++]-48;
else if(c[i]>='A'&&c[i]<='Z')
num=num*n1+c[i++]-55;
else if(c[i]>='a'&&c[i]<='z')
num=num*n1+c[i++]-87;
else
{
puts("error\n");
return;
}
}
i=0;
}
else
while(c[i])
{
if(c[i]<'0'||c[i]>'9')
{
puts("error\n");
return;
}
num=num*n1+c[i++]-'0';
}

i=0;
while(num!=0)
{
a[i++]=num%n2;