2014-10-20 87 views
1

我想知道爲什麼當你定義一個十六進制,然後使用公式 「ord x - ord'a'+10」爲什麼使用了+10?如果這個+10沒有被使用,它會給你什麼?haskell中的十六進制

+5

的十六進制數字'了'是10 – 2014-10-20 19:08:28

+4

請考慮使用'Data.Char .digitToInt' - 也適用於大寫的十六進制數字!除非你想'A'代表-22,當然,在這種情況下繼續:-) – yatima2975 2014-10-20 19:22:59

回答

6

沒有+ 10,你的字母映射A到F的值0到5,而不是10到15

2

ord x - (ord 'a')爲您提供了字符'a'爲0的排名'b' 1等等 這個排名轉換成你需要添加10的十六進制值,所以a => 10,b => 11

你想'a'爲10,因爲在9(編碼爲'9')來到10(編碼爲'a')。