Búsqueda de sitios web

java - Analizar cadena binaria como byte en JavaScript


Tengo una cadena binaria como "11100011" y quiero convertirla en un byte. Tengo un ejemplo que funciona en Java como el siguiente:

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

Aquí la salida será -29. Pero si escribo un código similar en JavaScript como el siguiente:

parseInt('11100011', 2);

Obtengo un resultado de 227.

¿Qué código de JavaScript debería escribir para obtener la misma salida que Java?

Respuesta #1

Java está interpretando el byte como un número con signo en complemento a dos, que es negativo ya que el bit más alto es 1. Javascript lo está interpretando como sin signo, por lo que siempre es positivo.

Prueba esto:

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