JSはビット演算によって権限を復号します。


まず、jsのビット演算を紹介します。
1.「&」:演算と2進数に変換し、同じ桁が1であれば結果は1、さもなければ0となります。
2.「|」:または演算をバイナリに変換し、同じ桁数が一つであれば結果は1、さもなければ0になります。
3.「^」:異形または演算はバイナリに変換され、同じ桁数が異なると結果は1になります。さもなければ0になります。
4.「<」異位演算子、1<<1、1を左に1桁移動するという意味、つまり010、2進数では2;
ちなみに、十進数字は互いに転化します。
十進数から別の進数に変わります。

var num = 123;
console.log(num.toString(2))
console.log(num.toString(8))//          
他の進数は十進数に変換されます。

var num = 110;
console.log(parseInt(num,2))//         
私たちが今5つの権限を持っていると仮定します。バイナリでは1を使って権限を持っています。0は持っていないことを表しています。したがって、11111はすべての5つの権限を持つことを表していますが、ユーザーにはどのように特定の権限があるかどうかを知ることができますか?
例えば、私達は今ユーザーに第一の権限があるかどうかを検査したいです。まず異位1<<0、左に0位移動しますか?それとも1、その後1&(Math.pow(2,5)-1)を使って、
もし0を返したら、ビットが合っていないということを説明します。つまり、現在は権限がありません。1を返したら、私たちは第一の権限を持っています。

if((1 << 0) & (Math.pow(2,5) - 1) !== 0){
  //         
}
if((1 << 1) & (Math.pow(2,5) - 1) !== 0){
  //         
}
締め括りをつける
以上述べたのは小編が紹介したJSがビット演算を通じて権限を復号します。皆さんに助けを求めています。もし何か質問があれば、メッセージをください。ここでも私たちのサイトを応援してくれてありがとうございます。