Ricerca nel sito web

java - Analizzare una stringa binaria come byte in JavaScript


Ho una stringa binaria come "11100011" e voglio convertirla in un byte. Ho un esempio funzionante in Java come quello seguente:

byte b1 = (byte)Integer.parseInt("11100011", 2);
System.out.println(b1);

Qui l'output sarà -29. Ma se scrivo un codice simile in JavaScript come segue:

parseInt('11100011', 2);

Ottengo un output di 227.

Quale codice JavaScript dovrei scrivere per ottenere lo stesso output di Java?

Risposta n. 1

Java interpreta il byte come un numero con segno in complemento a due, che è negativo poiché il bit più alto è 1. Javascript lo interpreta come senza segno, quindi è sempre positivo.

Prova questo:

var b1 = parseInt('11100011', 2);
if(b1 > 127) b1 -= 256;