例1:十六进制转十进制
问题描述:
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入:
FFFF
样例输出:
65535
代码:
// main.cpp
// 进制转换(16-10)
//
// Created by showlo on 2018/4/10.
// Copyright © 2018年 showlo. All rights reserved.
//
//十六进制转十进制
#include <stdio.h>
#include <string>
#include <math.h>
int main() {
char s[50];
int len,temp;
long long sum;
while (scanf("%s",s)!=EOF) {
len=strlen(s);
sum=0;
for (int i=0; i<len; i++) {
if (s[i]<'9')
temp=s[i]-'0';
else
temp=s[i]-'A'+10;
sum=sum*16+temp;
// sum=sum+temp*pow(16,len-i-1); //使用pow函数
}
printf("%lld\n",sum);
}
return 0;
}
例2:十进制转16进制
这里我没有用什么计算方法,直接用%x或%X输出就可以了,其实上面的也可以这样(捂脸
// main.cpp
// 十进制转十六进制
//
// Created by showlo on 2018/4/10.
// Copyright © 2018年 showlo. All rights reserved.
//
#include <stdio.h>
int main() {
int n;
scanf("%d",&n);
printf("%x\n",n);
printf("%X\n",n);
return 0;
}