java - Parsování binárního řetězce jako byte v JavaScriptu
Mám binární řetězec jako "11100011" a chci ho převést na byte. Mám funkční příklad v Java níže:
byte b1 = (byte)Integer.parseInt("11100011", 2);
System.out.println(b1);
Zde bude výstup -29. Ale pokud napíšu podobný kód v JavaScriptu, jako níže:
parseInt('11100011', 2);
Dostanu výstup 227.
Jaký JavaScriptový kód bych měl napsat, abych získal stejný výstup jako Java?
Odpověď č. 1
Java interpretuje byte jako číslo se znaménkem v doplňku dvojky, které je záporné, protože nejvyšší bit je 1. Javascript jej interpretuje jako bezznaménkové, takže je vždy kladné.
Zkuste toto:
var b1 = parseInt('11100011', 2);
if(b1 > 127) b1 -= 256;
