C语言:其他进制数转换为十进制(方法一)
2015-08-02 11:24
465 查看
#include<stdio.h>
#include<math.h>
#include<string.h>
//其他任意进制转换为十进制
int main()
{
int trans(char a[],int );
char strupr(char );
char arr[100];
int t;
printf("请输入进制的类型:");
scanf("%d",&t);
printf("请输入该进制的数:");
scanf("%s",arr);
int num = trans(arr,t);
printf("该数的十进制是:%d\n",num);
return 0;
}
char strupr(char ch)//小写字母转换为大写字母
{
if(ch>='a' && ch<='z')
{
ch = ch - 32;
}
printf("%c",ch);
return ch;
}
int trans(char chs[],int m)//转换为十进制
{
char *p = chs;
int len = strlen(p);
int temp,sum=0;
while(len>0)
{
char ss = strupr(*p);
if(ss>='0' && ss<='9')
{
temp = (ss-'0')*pow(m,len-1);//m表示进制类型(2、8、16)
sum = sum + temp;
}
if(ss>='A' && ss<='F')
{
temp = (ss-'A'+10)*pow(m,len-1);
sum = sum + temp;
}
p++;
len--;
}
printf("\n");
return sum;
}
#include<math.h>
#include<string.h>
//其他任意进制转换为十进制
int main()
{
int trans(char a[],int );
char strupr(char );
char arr[100];
int t;
printf("请输入进制的类型:");
scanf("%d",&t);
printf("请输入该进制的数:");
scanf("%s",arr);
int num = trans(arr,t);
printf("该数的十进制是:%d\n",num);
return 0;
}
char strupr(char ch)//小写字母转换为大写字母
{
if(ch>='a' && ch<='z')
{
ch = ch - 32;
}
printf("%c",ch);
return ch;
}
int trans(char chs[],int m)//转换为十进制
{
char *p = chs;
int len = strlen(p);
int temp,sum=0;
while(len>0)
{
char ss = strupr(*p);
if(ss>='0' && ss<='9')
{
temp = (ss-'0')*pow(m,len-1);//m表示进制类型(2、8、16)
sum = sum + temp;
}
if(ss>='A' && ss<='F')
{
temp = (ss-'A'+10)*pow(m,len-1);
sum = sum + temp;
}
p++;
len--;
}
printf("\n");
return sum;
}
相关文章推荐
- Cinatra:高性能现代C++ Web框架
- C语言深度解剖——读书笔记-6、预处理
- 刚开始学:C语言 BubbleSort冒泡排序算法
- C++类基础代码
- C++调用C#库简单例程
- C语言:顺序结构(数组)栈
- C++ sort()
- C++面向对象程序设计 笔记2(Class with pointer members)
- c++成员函数指针的应用
- 椭圆扫描 Bresenham算法 VC++
- 水池数目
- C++中指针常量和常量指针的区别
- 结构体排序
- 重学C++ (一)
- CTime 和CString的互相转换
- C++面向对象程序设计 笔记1(Class without pointer members)
- 黑马程序员---c语言 通讯录的实现
- C语言深度解剖——读书笔记-5、预处理
- C++抽象类小览
- C++ new(3)