Web3js
為什麼我們必須在這個函式的末尾加上’hex’?Buffer.from(‘key’ , ‘hex’)
我知道這行程式碼:
Buffer.from('key', 'hex')
將字元串轉換為其二進製表示。我的問題是:最後添加“十六進制”有什麼作用?我很困惑,因為密鑰已經是十六進制的,我們為什麼要指定函式是否可以在任何字元串上工作?
字元串可以由任何基中的整數組成,這就是您必須包含基的原因,因此可以正確解釋其中的整數。例子:
‘01’ 基數 2,或 ‘二進制’
‘01234567’ 基數 8,或 ‘八進制’,
‘0123456789’ 以 10 為基數,或’十進制’,
‘0123456789ABCDEF’ 基數 16,或’十六進制’
說明為什麼指定表示很重要的範例:
我們想將以下數字解釋為八進制數:42
Buffer(42, 5) 將從數字 22 10創建一個字節數組
Buffer(42, 8) 將從數字 34 10創建一個字節數組
Buffer(42, 10) 將(顯然)從數字 42 10創建一個字節數組
請注意,Buffer API 中基礎的字元串表示形式可能不同(‘hexadecimal’ 在 Buffer 中只是 ‘hex’),請查看 Buffer 文件以獲取更多資訊(https://nodejs.org/api/buffer.html)
順便提一句。請在此 stackexchange 中僅發布與乙太坊相關的問題,使用 stackoverflow 解決特定於語言的問題。