1.十进制转十六进制
资源限制:1.0s 内存限制:512.0MB
问题描述:十六进制是在程序设计经常要使用到的一种整数的表示方式。
给出一个非负整数,将它表示成十六进制的形式。
输入格式:输入一个非负整数,表示要转换的数。0<=a<=2147483647。
输出格式:输出这个整数的十六进制表示。
样例输入:30
样例输出:1E
代码参考1:(注意输出的是大写字母所以X要大写)
#include<stdio.h>
int main(){
long long a;
scanf("%lld",&a);
printf("%llX",a);
return 0;}
代码参考2:
#include<stdio.h>
char a[100000];
int main(){
int n;
scanf("%d",&n);
if(n==0)
printf("0\n"):
int c=0;
while(n){
a[c]=n%16;
n=n/16;
c++;}
int i;
for(i=c-1;i>=0;i--){
if(a[i]>=10){
printf("%c",'A'+a[i]-10);}
else{
printf("%d",a[i]);}}
printf("\n");
return 0;}
2.十六进制转十进制
资源限制:1.0s 内存限制:512.MB
问题描述:从键盘输入一个不超过8位的正的十六进制数字符串,把它转换为正的十进制数后输出。注:十六进制数中的10-15分别用大写字母A,B,C,D,E,F表示。
样例输入:FFFF
样例输出:65535
整体思路:利用数学函数pow(16,l-i-1)来计算十六进制的转换,string函数来计算所输入字符串的长度。在定义的时候记得拿来存放十进制数的变量要定义成长整型,还有就是因为输入的是字符串所以如果字符小于10的话要记得减去字符‘0’,如果大于10的话要减去字符‘A'在加上10.
代码参考:
#include<stdio.h>
#include<math.h>
#include<string.h>
int main(){
char a[8];
int i,l;
long long sum=0;
scanf("%s",a);
l=strlen(a);
for(i=0;i<l;i++){
if((a[i]>='0')&&(a[i]<='9'))
sum=sum+(a[i]-'0')*pow(16,l-i-1);
else
sum=sum+(a[i]-'A'+10)*pow(16,l-i-1);}
printf("%lld",num);
return 0;}