Web3js

為什麼我們必須在這個函式的末尾加上’hex’?Buffer.from(‘key’ , ‘hex’)

  • November 22, 2019

我知道這行程式碼: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 解決特定於語言的問題。

引用自:https://ethereum.stackexchange.com/questions/77729