Python基础练习 十进制转十六进制
本文已参与「新人创作礼」活动,一起开启掘金创作之路。
问题描述
十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
给出一个非负整数,将它表示成十六进制的形式。
输入输出
- 输入格式
输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647.
- 输出格式
输出这个整数的16进制表示.
- 样例输入
30
- 样例输出
IE
Python版本 代码如下
大Python的简洁之道。
n = int(input())
s = str(hex(n))
print(s[2:].upper())
同样,我们再次对比一下十六进制转化十进制的程序:详解链接
n = input()
print(int(n,16))
C版本 代码如下
在之前的基础上,列举C语言各类进制之间的转化代码如下:
(1)十进制转十六进制
#include<stdio.h>
#include<string.h>
int main(){
long n; //注意n是long类型
char a[999];
scanf("%d", &n);
for(int i=0; n!=0; i++){
if(n%16==10)
a[i]='A';
else if(n%16==11)
a[i] = 'B';
else if(n%16==12)
a[i] = 'C';
else if(n%16==13)
a[i] = 'D';
else if(n%16==14)
a[i] = 'E';
else if(n%16==15)
a[i] = 'F';
else a[i] = (n%16)+'0';
n=n/16;
}
for(int i=strlen(a)-1; i>=0; i--)
printf("%c", a[i]);
return 0;
}
(2)任意进制转十进制
#include<stdio.h>
int main(){
int x, p;
scanf("%d", &X);
scanf("%d", &p);
int y = 0;
int pro = 1;
while(x!=0){
y += (x%10)*pro;
x = x/10;
pro *= p
}
printf("%d", y);
return 0;
}
(3)十进制转任意进制
#include<stdio.h>
int main(){
int x, p;
scanf("%d", &X);
scanf("%d", &p);
int a[999];
int con = 0;
do{
a[con++] = x%p;
x = x/p;
}while(x!=0)
for(int i=con-1; i>=0; i--){
printf("%d", a[i]);
}
return 0;
}
参考博客:C版本