私が取り組んでいるいくつかのコードでは、2 つの値 (0 または 1) のいずれかを取ることができる 10 個の独立したパラメーターを処理する必要があります。これにより、2^10 の異なる条件が作成されます。いくつかの条件は決して発生せず、除外することができますが、発生する条件は依然として多く、switch
すべてのケースを処理するために を作成するのは正気ではありません。
if
巨大な の代わりに10 個のステートメントを使用したいswitch
。このためには、フラグビットを使用する必要があることを知っています。言語はjavascriptであり、10ビットバイナリを表すために10バイト文字列を操作する方が簡単であるため、フラグバイトを使用する必要があります。
さて、私の問題は、これを実装する方法がわからないことです。API
複数選択可能なオプションが 1, 2, 4, 8, ... , n^(n-1) で公開されている s で使用されているのを見たことがあります。バイナリで。したがって、 のような呼び出しを行うとbar = foo(7)
、 bar は右端の 3 つのフラグが有効にするオプションを持つオブジェクトになります。
10 進数を 2 進数に変換し、各if
ステートメントで対応する数字が設定されているかどうかを確認できます。しかし、実際に変換を行わずに、10 進数の桁が 0 か 2 進数の 1かを判断する方法はあるのでしょうか?n-th