HJ5 進制轉換


★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公眾號:山青詠芝
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/ )
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址: https://www.cnblogs.com/strengthen/p/15553203.html
➤如果鏈接不是山青詠芝的博客園地址,則可能是爬取作者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持作者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

熱烈歡迎,請直接點擊!!!

進入博主App Store主頁,下載使用各個作品!!!

注:博主將堅持每月上線一個新app!!!

描述

寫出一個程序,接受一個十六進制的數,輸出該數值的十進制表示。
 
數據范圍:保證結果在 
 
注意本題有多組輸入

輸入描述:

輸入一個十六進制的數值字符串。注意:一個用例會同時有多組輸入數據,請參考帖子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)
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM