基础练习 十六进制转十进制(ACMORE1565)
题目
Description
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
Input
十六进制数字符串
Output
十进制数
Sample Input
FFFF
Sample Output
65535
Source
蓝桥杯
题目链接: https://acmore.cc/problem/LOCAL/1565
简析
用c语言写的话用for循环一下,每个位乘权值,加起来即可。
用Java写的话,有现成的方法呀
这里顺便说一下java中10进制与16进制的互换:
1、10进制转16进制
int dec = 123;
String hex = Integer.toHexString(dec);
2、16进制转10进制
String hex = "FFFF";
Integer dec = Integer.parseInt(hex, 16);
但是,可能会超出长度限制,所以我们用Java中的BigInteger来处理:
String hex = "FFFF";
BigInteger dec = new BigInteger(hex, 16);
AC的代码
Python版
print(int(input(),16))
Java版
import java.io.BufferedInputStream;
import java.math.BigInteger;