Python基础练习 十六进制转十进制
本文已参与「新人创作礼」活动,一起开启掘金创作之路。
小知识:
在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。
二进制是0和1;八进制是0-7;十进制是0-9;十六进制是0-9+A-F(大小写均可)。
运算规则是进位或错位规则。例如对于二进制来说,该规则是“满二进一,借一当二”;
八进制就是逢8进1,都是0~7的数字,到8就进1位;
对于十进制来说,该规则是“满十进一,借一当十”。其他进制也是这样。
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
输入输出
- 样例输入
FFFF
- 样例输出
65535
Python版本 代码如下
大Python的简洁之道。
n = input()
print(int(n,16))
Java版本 代码如下
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
Long value = Long.valueOf(line, 16); // 16转10进制
System.out.println(value);
sc.close();
}
}
C++版本 代码如下
在c语言中,整数有十进制、八进制和十六进制三种表示形式。 其中,以数字0开始,由0-7组成的数为8进制数。 以0X或0X开头,0-9、A-F组成的是十六进制数。 除了表示正负的符号以外,以1-9开始,由0-9构成的是十进制。
先将十进制转化为八进制,再转换为十进制就会相对简单一些,因为八进制中没有英文字母。
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
int main() {
string hex;
long long dec = 0;
cin>>hex;
int len = hex.length();
for(int i=0 ;i<len;i++) {
dec += (hex[i] - '0') * pow(8, len-1-i);
}
cout<<dec;
return 0;
}