JavaScript设置了四位
我有以下的模式:
1000 0001 (129)
我现在想要设置我的青睐之后的最后四位(1 – 10,0x1 – 0xA):
1000 0010
要么
1000 1000
我其实不知道我能做到这一点。 我可以读出前四位:
var buff = new Buffer(1); buff[0] = 129; var isFirstBitSet = (buff[0] & 128) == 128; var isSecondBitSet = (buff[0] & 64) == 40; var isThirdBitSet = (buff[0] & 32) === 32; var isFourthBitSet = (buff[0] & 16) === 16; var buff[0] = 0xA; if (isFirstBitSet) { buff[0] = buff[0] & 128; }
然后映射到一个新的,但我认为这是自我解释,这是废话。
您可以通过首先将整数与0xfffffff0
与运算,然后将其与您的四位值进行或运算来设置整数的低四位。
function setLowFour(n, lowFour) { return (n & 0xfffffff0) | (lowFour & 0xf); }
请注意,JavaScript并没有真正的整数types。 按位运算强制值为整数,但实际上仍然以浮点数存储。
编辑 – 我认为它实际上也可以:-) setLowFour(1025, 12)
返回setLowFour(1025, 12)
unit testing怎么样?