我想使用JavaScript將DEC編號轉換爲HEX。如何在JavaScript中將DEC轉換爲HEX?
我想轉換的數量是28
我已經嘗試使用:
function h2d(h) {return parseInt(h,16);}
但是它返回40
我也嘗試使用:
function d2h(d) {return d.toString(16);}
但是它返回28
最終結果應該返回1C,但我似乎無法解決。
有誰知道我哪裏出了問題?
我想使用JavaScript將DEC編號轉換爲HEX。如何在JavaScript中將DEC轉換爲HEX?
我想轉換的數量是28
我已經嘗試使用:
function h2d(h) {return parseInt(h,16);}
但是它返回40
我也嘗試使用:
function d2h(d) {return d.toString(16);}
但是它返回28
最終結果應該返回1C,但我似乎無法解決。
有誰知道我哪裏出了問題?
這聽起來像你遇到麻煩,因爲你的投入是當你正在尋找一個字符串一個號碼。試着改變你的D2H()的代碼看起來像這樣,你應該設置:
function d2h(d) { return (+d).toString(16); }
加號(+
)可以迫使一個變量是一個數的速記方法。只有Number的toString()
方法將採用基數,String不會。此外,您的結果將是小寫,所以你可能要迫使它使用toUpperCase()
爲大寫:
function d2h(d) { return (+d).toString(16).toUpperCase(); }
那麼結果將是:
d2h("28") //is "1C"
重複的問題
(28).toString(16)
您所做的錯誤是,「28」是一個字符串,而不是數字。你應該把它看作一個數字。人們通常不應該期望的是,在進行轉換之前,語言能夠將字符串解析爲一個整數(呃...我想在JavaScript中期待另一種方式是合理的)。
它返回28而不是1C,不確定你的意思是重複的問題,因爲我無法讓它工作。 – Aaron
@Aaron:不,它返回「1C」。你應該複製粘貼上面的行。 – ninjagecko
D2H()的書面應該很好地工作:
js> var d=28
js> print(d.toString(16))
1c
你怎麼測試呢?
此外,40是D2H(28)的預期輸出,由於十六進制的「28」是十進制40
參見:https://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript – hippietrail