Saltar al contenido

Números negativos a binario string en JavaScript

Contamos con tu ayuda para extender nuestros posts referente a las ciencias de la computación.

Solución:

-3 >>> 0 (desplazamiento lógico a la derecha) convierte sus argumentos en enteros sin signo, por lo que se obtiene la representación en complemento a dos de 32 bits de -3.

http://en.wikipedia.org/wiki/Two%27s_complemento

http://en.wikipedia.org/wiki/Logical_shift

var binary = (-3 >>> 0).toString(2); // coerced to uint32

console.log(binary);

console.log(parseInt(binary, 2) >> 0); // to int32

en jsfiddle

la salida es

11111111111111111111111111111101
-3 

Respuesta corta:

  1. los toString() La función toma el decimal, lo convierte a binario y agrega un signo “-“.

  2. Un desplazamiento a la derecha de relleno cero convierte sus operandos en enteros de 32 bits con signo en formato de dos complementos.

Una respuesta más detallada:

Pregunta 1:

//If you try
(-3).toString(2); //show "-11"

esta en la funcion .toString(). Cuando emite un número a través de .toString():

Sintaxis

numObj.toString([radix])

Si numObj es negativo, se conserva el signo. Este es el caso incluso si la raíz es 2; la string devuelto es la representación binaria positiva de numObj precedida por un signo -, no el complemento a dos de numObj.

Toma el decimal, lo convierte a binario y agrega un signo “-“.

  1. Base 10 “3” convertido a base 2 es “11”
  2. Añadir un signo nos da “-11”

Pregunta 2:

// but if you fake a bit shift operation it works as expected
        (-3 >>> 0).toString(2); // print "11111111111111111111111111111101"

Un desplazamiento a la derecha de relleno cero convierte sus operandos en enteros de 32 bits con signo. El resultado de esa operación es siempre un entero de 32 bits sin signo.

Los operandos de todos los operadores bit a bit se convierten en enteros de 32 bits con signo en formato de complemento a dos.

Aquí puedes ver las comentarios y valoraciones de los lectores

Si te gustó nuestro trabajo, eres capaz de dejar un tutorial acerca de qué te ha parecido este tutorial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *