Dim*_*imC 30 javascript integer bits
我试图在javascript中将一个整数(我知道将介于0和32之间)转换为0和1的数组.我环顾四周但找不到有用的东西..
所以,如果我有一个22的整数(二进制10110),我想访问它:
Bitarr[0] = 0
Bitarr[1] = 1
Bitarr[2] = 1
Bitarr[3] = 0
Bitarr[4] = 1
Run Code Online (Sandbox Code Playgroud)
有什么建议?非常感谢
nob*_*ody 65
转换为基数2:
var base2 = (yourNumber).toString(2);
Run Code Online (Sandbox Code Playgroud)
访问字符(位):
base2[0], base2[1], base2[3], etc...
Run Code Online (Sandbox Code Playgroud)
var a = 22;
var b = [];
for (var i = 0; i < 5; i++)
b[i] = (a >> i) & 1;
alert(b);
Run Code Online (Sandbox Code Playgroud)
假设5位(似乎来自你的问题),那么0 <= a < 32.如果你喜欢你可以做5更大的,upto 32(JavaScript中的bitshifting工作32位整数).
用零填充最后一位的最短(32 个字符)版本。我假设这n是你的数字,b是基数(输出位数):
[...Array(b)].map((x,i)=>n>>i&1)
Run Code Online (Sandbox Code Playgroud)
[...Array(b)].map((x,i)=>n>>i&1)
Run Code Online (Sandbox Code Playgroud)