2014-08-28 111 views
0

我需要一種使用JavaScript從十六進制值中獲得帶符號的8位整數的方法。到目前爲止,我已經嘗試使用parseInt(value, 8),但它似乎被棄用,我得到parseInt(0xbd, 8) = 0(當它應該給-67)。javascript:將十六進制值轉換爲帶符號的8位整數

我該怎麼做?

+0

我給了一個類似的問題的解決方案在這裏:http://stackoverflow.com/a/34679269/2102748,希望它幫助。 – milosmns 2016-01-08 14:23:35

回答

3

我只是在尋找一個JavaScript解決這個。來自splig的答案似乎並不正確,但它將我引向解決方案。

我相信你應該從num中減去256(num> 127)。

var num = parseInt('ff', 16); 
 
if (num > 127) { num = num - 256 } 
 
alert(num);

1

parseInt的第二個參數是基數,你需要16,因爲它是十六進制 ,因爲你已經告訴它它是十六進制的,0x是可選的。

當你想要做的簽署8位INT,你需要將其轉換爲手籤 - 嘗試像

var num = parseInt('bd', 16); 
if (num > 127) { num = 128 - num } 
alert(num);