number maximum constant array javascript integer bits

maximum - Javascript-convierte un entero a una matriz de bits



javascript maximum (7)

A partir de respuestas anteriores: es posible que desee que su matriz sea una matriz de enteros, no cadenas, por lo que aquí hay una sola línea:

(1234).toString(2).split('''').map(function(s) { return parseInt(s); });

Tenga en cuenta que la versión más corta, (11).toString(2).split('''').map(parseInt) no funcionará (chrome), por lo que no (11).toString(2).split('''').map(parseInt) por qué convierte "0" s a NaN s

Estoy intentando en javascript convertir un entero (que sé que estará entre 0 y 32), a una matriz de 0s y 1s. He mirado a mi alrededor pero no pude encontrar algo que funcione ...

Entonces, si tengo un número entero como 22 (10110 binario), me gustaría acceder a él como:

Bitarr[0] = 0 Bitarr[1] = 1 Bitarr[2] = 1 Bitarr[3] = 0 Bitarr[4] = 1

¿Alguna sugerencia? Muchas gracias


Además, este código da una matriz de 32length

function get_bits(value){ var base2_ = (value).toString(2).split("").reverse().join(""); var baseL_ = new Array(32 - base2_.length).join("0"); var base2 = base2_ + baseL_; return base2; } 1 => 1000000000000000000000000000000 2 => 0100000000000000000000000000000 3 => 1100000000000000000000000000000


Esto deberia hacer

for(int i = 0; i < 32; ++i) Bitarr[i] = (my_int >> i) & 1;


Puedes convertir tu entero en una cadena binaria como esta. Note el parámetro base 2.

var i = 20; var str = i.toString(2); // 10100

Puede acceder a los caracteres en una cadena como si fuera una matriz:

alert(str[0]); // 1 alert(str[1]); // 0 etc...


Usted podría hacer lo siguiente;

var n = 1071, b = Array(Math.floor(Math.log2(n))+1).fill() .map((_,i,a) => n >> a.length-1-i & 1); console.log(b);


convertir a base 2:

var base2 = (yourNumber).toString(2);

acceder a los caracteres (bits):

base2[0], base2[1], base2[3], etc...


var a = 22; var b = []; for (var i = 0; i < 5; i++) b[i] = (a >> i) & 1; alert(b);

Suponiendo 5 bits (parecía de su pregunta), entonces 0 <= a < 32 . Si lo desea, puede hacer los 5 más grandes, hasta 32 (el cambio de bits en JavaScript funciona con un entero de 32 bits).