java - Tolke binær streng som byte i JavaScript
Jeg har en binær streng som "11100011" og jeg vil konvertere den til en byte. Jeg har et fungerende eksempel i Java som nedenfor:
byte b1 = (byte)Integer.parseInt("11100011", 2);
System.out.println(b1);
Her vil outputen være -29. Men hvis jeg skriver noe lignende kode i JavaScript som nedenfor:
parseInt('11100011', 2);
Jeg får en utgang på 227.
Hvilken JavaScript-kode bør jeg skrive for å få samme resultat som Java?
Svar #1
Java tolker byte som et signert tall i tokomplement, som er negativt siden den høyeste biten er 1. Javascript tolker det som usignet, så det er alltid positivt.
Prøv dette:
var b1 = parseInt('11100011', 2);
if(b1 > 127) b1 -= 256;
