旋转特定位';在';在Javascript中

旋转特定位';在';在Javascript中,javascript,binary,binary-operators,Javascript,Binary,Binary Operators,我试图用JavaScript解决以下问题: 如果给定8位数字中2(或更多)位的“开”位置,如何生成表示该字节的正确数字?例如: 给定数字1和3,意味着第1高(最高有效)位和第3高(第3高有效)位处于启用状态,如何返回10100000或160?给定1、3和7,如何返回10100010等?如果我得到了答案,类似这样的东西可能会起作用: const onesToNum=(…args)=>{ const binaryStr='00000000' .替换(/0/g,(\ux,idx)=> 参数包括(id

我试图用JavaScript解决以下问题:

如果给定8位数字中2(或更多)位的“开”位置,如何生成表示该字节的正确数字?例如:


给定数字1和3,意味着第1高(最高有效)位和第3高(第3高有效)位处于启用状态,如何返回10100000或160?给定1、3和7,如何返回10100010等?

如果我得到了答案,类似这样的东西可能会起作用:

const onesToNum=(…args)=>{
const binaryStr='00000000'
.替换(/0/g,(\ux,idx)=>
参数包括(idx+1)?“1”:“0”)
返回parseInt(二进制str,2)
}

log(onesToNum(1,3))
如果我明白了这一点,像这样的东西可能会有用:

const onesToNum=(…args)=>{
const binaryStr='00000000'
.替换(/0/g,(\ux,idx)=>
参数包括(idx+1)?“1”:“0”)
返回parseInt(二进制str,2)
}
console.log(onesToNum(1,3))
您为此使用了,不同的位:

1<<7 | 1<<5  ===  0b10100000
为此,您使用a,以及不同的位:

1<<7 | 1<<5  ===  0b10100000

@伯吉:你会不厌其烦地陈述你的否决理由吗?@Bergi:你会不厌其烦地陈述你的否决理由吗?
256>>1 | 256>>3 | 256>>7  ===  0b10100010