在一行上输入一个十六进制数
,代表待转换的十六进制数,格式见题干。保证
转化得到的十进制数
的范围为
。
在一行上输出一个整数,代表
对应的十进制数。
0xFA93
64147
回忆十六进制转化为十进制的方法:从右往左,将第
位乘以
,然后求和。
在这个样例中,
的第
位是
,第
位是
,第
位是
,第
位是
,因此
。
s = input()
maping ={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
s = s[::-1]
s = s[:-2]
h = 1
ans = 0
for c in s:
ans += int(maping[c]) * h
h *= 16
print(ans) import sys
if __name__ == "__main__":
for line in sys.stdin:
a = line.split('\n')
num_hex_str = a[0][2:]
print(int(num_hex_str,16)) 题目已经限定了输入的数的范围 1~2^32-1,就算在32位机器上,依旧可以用一个4字节长整型数表示,所以直接用语言自带的字符串-数字转换函数即可
dic = {}
dic['A']= '10'
dic['B']= '11'
dic['C']= '12'
dic['D']= '13'
dic['E']= '14'
dic['F']= '15'
for i in range(10):
dic[str(i)] = str(i)
while True:
try:
a = input()
n = 0
for i in range(2,len(a)):
n = n + int(dic[a[i]])* (16**(len(a)-i-1))
print(str(n))
except:
break bits = {
'0':0,
'1':1,
'2':2,
'3':3,
'4':4,
'5':5,
'6':6,
'7':7,
'8':8,
'9':9,
'A':10,
'B':11,
'C':12,
'D':13,
'E':14,
'F':15
}
# 大数乘法(不是负数情况下)(数组元素和乘数均以数值而非字符串表示)
def bigNumMul(arr, num):
# 空数组直接返回
if not arr:
return arr
# 记录进位的数
carry = 0
# 记录每一位乘法后临时结果
mul = 0
# 从低位到高位处理
arr = arr[::-1]
for i in range(len(arr)):
# 每一位乘上乘数再加上低位传来的进位数
mul = num * arr[i] + carry
# 取个位数赋值给当前位
arr[i] = mul % 10
# 其余位数作为进位
carry = mul // 10
# 乘完之后若最高位前还要进位,则补上
while carry > 0:
arr += [carry % 10]
carry = carry // 10
# 换回正常顺序
arr = arr[::-1]
# 去掉最前面的0
while len(arr) > 1 and arr[0] == 0:
arr = arr[1:]
# 返回结果数组
return arr
def bigNumAdd(arr, num):
if not arr:
while num > 0:
arr.append(num % 10)
num = num // 10
return arr[::-1]
arr = arr[::-1]
arr[0] += num
carry = arr[0] // 10
arr[0] = arr[0] % 10
for i in range(1, len(arr)):
arr[i] += carry
carry = arr[i] // 10
arr[i] = arr[i] % 10
while carry > 0:
arr.append(carry % 10)
carry = carry // 10
return arr[::-1]
while 1:
try:
hex_lst = input()[2:]
dec_lst = [0]
# 低位到高位处理
for c in hex_lst:
# 整个数组乘以16进行进位
dec_lst = bigNumMul(dec_lst, 16)
# 数组最低位加上当前的个位数
dec_lst = bigNumAdd(dec_lst, bits[c])
res_str = ''.join([str(e) for e in dec_lst])
print(res_str)
except Exception:
break