我需要一種使用JavaScript從十六進制值中獲得帶符號的8位整數的方法。到目前爲止,我已經嘗試使用parseInt(value, 8)
,但它似乎被棄用,我得到parseInt(0xbd, 8) = 0
(當它應該給-67
)。javascript:將十六進制值轉換爲帶符號的8位整數
我該怎麼做?
我需要一種使用JavaScript從十六進制值中獲得帶符號的8位整數的方法。到目前爲止,我已經嘗試使用parseInt(value, 8)
,但它似乎被棄用,我得到parseInt(0xbd, 8) = 0
(當它應該給-67
)。javascript:將十六進制值轉換爲帶符號的8位整數
我該怎麼做?
我只是在尋找一個JavaScript解決這個。來自splig的答案似乎並不正確,但它將我引向解決方案。
我相信你應該從num中減去256(num> 127)。
var num = parseInt('ff', 16);
if (num > 127) { num = num - 256 }
alert(num);
parseInt的第二個參數是基數,你需要16,因爲它是十六進制 ,因爲你已經告訴它它是十六進制的,0x是可選的。
當你想要做的簽署8位INT,你需要將其轉換爲手籤 - 嘗試像
var num = parseInt('bd', 16);
if (num > 127) { num = 128 - num }
alert(num);
我給了一個類似的問題的解決方案在這裏:http://stackoverflow.com/a/34679269/2102748,希望它幫助。 – milosmns 2016-01-08 14:23:35