HJ5 进制转换
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/ )
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址: https://www.cnblogs.com/strengthen/p/15553203.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在
注意本题有多组输入
输入描述:
输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例1
输入:
0xA 0xAA
输出:
10 170
import Foundation while let line = readLine() { let str = line.uppercased().suffix(line.count - 2) var sum = 0 for i in str.utf8 { sum = sum * 16 + Int(i) - 48 // 0-9 从48开始 if i >= 65 { // A-Z 从65开始,但有初始值10,所以应该是减去55 sum -= 7 } } print(sum) }
while var input = readLine() { if input.lowercased().hasPrefix("0x") { input = String(input[String.Index(utf16Offset: 2, in: input) ..< input.endIndex]) } let i = Int(input,radix: 16) print(String(i!, radix: 10)) }
while let line = readLine() { let str = line.uppercased().suffix(line.count - 2) var sum = 0 for i in str.utf8 { sum = sum * 16 + Int(i) - 48 if i >= 65 { sum -= 7 } } print(sum) }