任意进制间的转换
2012-10-31 08:14
120 查看
任意进制间的转换(2~36进制)
上次写的2~9进制转换到10进制,因为都是整型的,处理输出输入都比较方便,这次来个比较普遍的。要用数组存储要转换的数字,结果返回整型的十进制数。函数如下:
/************************************************************************/
/* a是要转换的数,bit是原本的进制(2~36) */
/************************************************************************/
long toTen(char a[],int bit)
{
long i,b=1,sum=0;
int length=strlen(a);
for (i=length-1;i>=0;i--)
{
if (a[i]>='A')
{
sum+=(a[i]-'A'+10)*b;
b*=bit;
}
else
{
sum+=(a[i]-'0')*b;
b*=bit;
}
}
return sum;
}
之前有十进制到任意进制的一个函数,这次有任意进制到十进制的这个函数。于是,可以在任意进制之间进行转换,通过十进制中介。
下面是测试主函数:
int main()
{
int aNum;
char bNum[20];
//以整型读入,转换字符串带入函数,进行进制转换
cin>>aNum;
sprintf(bNum,"%d",aNum);
cout<<toTen(bNum,8)<<endl; //假设原本是8进制,代入函数后返回10进制的数
//以字符串读入,直接代入函数,进行进制转换
cin>>bNum;
cout<<toTen(bNum,2)<<endl; //假设原本是2进制
//把二进制10110转换为十六进制
aNum=toTen("10110",2);
itoa(aNum,bNum,16);
cout<<bNum<<endl;
return 0;
}
上次写的2~9进制转换到10进制,因为都是整型的,处理输出输入都比较方便,这次来个比较普遍的。要用数组存储要转换的数字,结果返回整型的十进制数。函数如下:
/************************************************************************/
/* a是要转换的数,bit是原本的进制(2~36) */
/************************************************************************/
long toTen(char a[],int bit)
{
long i,b=1,sum=0;
int length=strlen(a);
for (i=length-1;i>=0;i--)
{
if (a[i]>='A')
{
sum+=(a[i]-'A'+10)*b;
b*=bit;
}
else
{
sum+=(a[i]-'0')*b;
b*=bit;
}
}
return sum;
}
之前有十进制到任意进制的一个函数,这次有任意进制到十进制的这个函数。于是,可以在任意进制之间进行转换,通过十进制中介。
下面是测试主函数:
int main()
{
int aNum;
char bNum[20];
//以整型读入,转换字符串带入函数,进行进制转换
cin>>aNum;
sprintf(bNum,"%d",aNum);
cout<<toTen(bNum,8)<<endl; //假设原本是8进制,代入函数后返回10进制的数
//以字符串读入,直接代入函数,进行进制转换
cin>>bNum;
cout<<toTen(bNum,2)<<endl; //假设原本是2进制
//把二进制10110转换为十六进制
aNum=toTen("10110",2);
itoa(aNum,bNum,16);
cout<<bNum<<endl;
return 0;
}
相关文章推荐
- python 十进制整数转换为任意进制(36以内)
- 任意进制与十进制之间的转换
- C语言实现任意进制的转换,主要注意代码的小技巧
- 【任意进制转换】 例:输入十进制转换二进制
- 十进制转换成任意进制(栈的应用)
- 2~62位任意进制转换方法(c++)
- Python 正整数任意进制互转换代码示例
- 任意进制间的转换
- 任意十六进制数转换成十进制数----不管你输入多长都能转换
- C++实现将十进制数转换为小于等于九的任意进制
- n进制小数 将任意十进制正小数分别转换成2,3,4,5,6,7,8,9进制正小数,小数点后保留8位,并输出。
- java实现任意进制的互相转换
- C语言实现任意进制的转换,主要注意代码的小技巧
- C++十进制转换为任意进制
- 转帖:c#任意进制转换(2-36进制之间的转换)
- C语言之任意进制的转换
- 使用数组,编写一个任意进制正整数转换为十进制的转换工具。
- 用栈实现将十进制数转换为任意进制数(2,8,16...).
- C#实现整型数据字任意编码任意进制的转换和逆转换简介
- Palindrom Numbers 任意进制数转换