omg*_*omg 3 javascript binary decimal
var d = 7;
二进制:7 =(111)
我想要做的是将右边的第二个位置设置为1或0,
并返回小数值.
例如,如果我想将第二个1设为0,那么在进程之后应返回5,
因为5 =(101).
如何在javascript中实现这一点?
编辑
答案应该是这样的:
function func(decimal,n_from_right,zero_or_one)
{
}
Run Code Online (Sandbox Code Playgroud)
其中decimal是要处理的数字,n_from_right是右边的位数,在我上面的例子中是2.zero_or_one表示将该特定位设置为0或1.
Guf*_*ffa 15
清除一点的最简单方法是使用和它的位补码操作.
7 = 0000000000000111
~2 = 1111111111111101
& : 0000000000000101
Run Code Online (Sandbox Code Playgroud)
在代码中:
var d = 7, mask = 2;
d &= ~mask;
Run Code Online (Sandbox Code Playgroud)
要设置位而不是清除它,请使用或运算符:
d |= mask;
Run Code Online (Sandbox Code Playgroud)
如果需要动态创建掩码来处理不同的位,则从值1开始(二进制0000000000000001)并将该位移位到正确的索引.第二位有索引1(最右边的位有索引零),所以:
var index = 1;
var mask = 1 << index;
Run Code Online (Sandbox Code Playgroud)
Rus*_*Cam 11
一种方法,但你可能会更好地使用按位运算符
var d = 7;
var binary = d.toString(2);
binary = binary.split('');
binary[1] = "0";
binary = binary.join('');
binary = parseInt(binary,2);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9497 次 |
最近记录: |