Python基础练习 十六进制转十进制

326 阅读2分钟

Python基础练习 十六进制转十进制

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

小知识:
在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。
二进制是01;八进制是0-7;十进制是0-9;十六进制是0-9+A-F(大小写均可)。

运算规则是进位或错位规则。例如对于二进制来说,该规则是“满二进一,借一当二”;
八进制就是逢81,都是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; 
}

参考博客:
C++版本
进制的讲解