蓝桥杯——十六进制转换十进制
2016-03-06 18:03
162 查看
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
//错误出现在temp,sum,的基本类型
#include <stdio.h>
#include <string.h>
#define N 10000
int main()
{
char str1
;//str1用来表示十六进制
int n,i,j;
//printf("请输入n的值\n");
scanf("%d",&n);
while(n--)
{
memset(str1,0,sizeof(str1));
scanf("%s",str1);
int strlength1;
long long sum,temp;
strlength1=strlen(str1);
sum=0;//置为0
for(i=0;i<strlength1;i++)
{
if(str1[i]=='A')
temp=10;
else if(str1[i]=='B')
temp=11;
else if(str1[i]=='C')
temp=12;
else if(str1[i]=='D')
temp=13;
else if(str1[i]=='E')
temp=14;
else if(str1[i]=='F')
temp=15;
else
temp=str1[i]-'0';//全部使用if语句与使用else if是有差别的
for(j=i;j<strlength1-1;j++)
{
temp=temp*16;
}
sum=sum+temp;
}
printf("%I64d\n",sum);
}
return 0;
}
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
//错误出现在temp,sum,的基本类型
#include <stdio.h>
#include <string.h>
#define N 10000
int main()
{
char str1
;//str1用来表示十六进制
int n,i,j;
//printf("请输入n的值\n");
scanf("%d",&n);
while(n--)
{
memset(str1,0,sizeof(str1));
scanf("%s",str1);
int strlength1;
long long sum,temp;
strlength1=strlen(str1);
sum=0;//置为0
for(i=0;i<strlength1;i++)
{
if(str1[i]=='A')
temp=10;
else if(str1[i]=='B')
temp=11;
else if(str1[i]=='C')
temp=12;
else if(str1[i]=='D')
temp=13;
else if(str1[i]=='E')
temp=14;
else if(str1[i]=='F')
temp=15;
else
temp=str1[i]-'0';//全部使用if语句与使用else if是有差别的
for(j=i;j<strlength1-1;j++)
{
temp=temp*16;
}
sum=sum+temp;
}
printf("%I64d\n",sum);
}
return 0;
}
相关文章推荐
- Hibernate之持久化对象
- 软件测试第一次作业
- MongoDB中对象反序列化的一个小问题
- 【MOOC EXP】Linux内核分析实验二报告
- 从零开始山寨Caffe·陆:IO系统(一)
- OpenStack云计算快速入门之一:OpenStack及其构成简介
- 一步一步教你安装openstack
- 学习进度条
- 四则运算
- hadoop2.7.2 HA搭建
- hdu acm 1565 方格取数(1)
- OpenStack 部署运维实战
- C语言之strlen和sizeof有什么区别
- 软件工程作业二
- VVDocumenter安装过程的一些问题
- 进度条博客
- 基于Android的Word在线预览
- 九度题目1153括号匹配问题
- hadoop2.7.2 联邦配置文件
- css样式-动画效果