問題タブ [bit-masks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - BitConverter がバイトを返すのはなぜですか?どうすればビットを取得できますか?
入力として int を取得します (実際には、int に変換する必要がある文字列です)。
この int はビットに変換する必要があります。
1 のビット位置ごとに、位置を取得する必要があります。
私のデータベースでは、この位置を値として持つ int 値フィールドを持つすべてのレコードが必要です。
私は現在、エンティティ(databaseValueを保持している)に位置と一致するかどうかを尋ねる必要がある次の単純なコードを持っていますが、明らかに正しく機能しません:
まず、明らかにビット型がないため、バイトの配列があります。Boolean[] を使用する必要がありますか? では、どうすればこの配列を埋めることができますか? 最後に、前のステートメントが解決された場合は、bits[position] を返すだけです。
これはどういうわけかビットマスクで解決する必要があるように感じますが、どこから始めればよいかわかりません..
どんな助けでもいただければ幸いです
java - 関数の作成: short GetBits(short data, int p, int n)
関数 short getBits(short data, int p, int n) を書いています
私が試してみました:
これは getBits( (short) 0x7000, 0, 4) で機能しますが、7 を 8 に置き換えると負の値になります。
bitmask - ビットマスクの質問
POSシステムのドキュメントを読んで、どの席が選択されているかを知らせるマスクの例を次に示します。私はこれを理解することはできません。ビットマスキングを完全に理解しています。この例は間違っていますか?
関数
このシステム変数は、シート フィルター マスクを含む 8 文字の文字列です。
種類・サイズ
A8
構文
@フィルターマスク
Filter_mask の使用法
このシステム変数は読み取り専用です。
Filter_mask の例
以下は、フィルタ マスクの例です。
c++ - ビットマスク スイッチ ステートメント
プロジェクトのセクションに次のコードがあります。
これは問題なく、完全に機能しますが、スイッチで実行できるかどうか常に疑問に思っていました。私はこれに沿って何かを考えていました:
私の質問は次のとおりです。
c# - 返されたビット マスク値を確認する方法は?
C# からこの関数を呼び出しています: GetKeyboardStatus()
ドキュメントを見ると、ビットマスク値を返すと書かれています。私のコードの目標は、デバイスに英数字の物理キーボードがあるかどうかを判断することです。この関数の呼び出しに成功し、戻り値は 15 です。ただし、ビット マスクを理解していないため、それを 0x0008 値と比較する方法がわかりません。ドキュメントによると、「キーボード ハードウェアが英数字キーがあります。」これを Windows Mobile または Compact Framework の質問としてタグ付けすることはありません。私の質問に答えるために理解する必要があるのはビット マスクと C# だけだと思うからです。答えがビット マスクの操作方法の理解を深めてくれることを願っています (必須ではありませんが)。これが私のコードです。間違っているのはreturnステートメントだけだと思います:
ご協力いただきありがとうございます。ただし、これは英数字キーを備えた物理キーボードがあるかどうかを判断するための信頼できる方法ではないことがわかりました。キーボード付きとキーボードなしの 2 つのデバイスを試してみましたが、GetKeyboardStatus 関数は両方で 15 を返したため、回答のビット マスクの説明をテストすることさえできません。
c - Cでビットマスクを作成する簡潔な方法はありますか?
最終的に3つの32ビットになる3つのビットマスクを作成する必要がありますunsigned ints
(それらをx、y、zと呼びましょう)。マスクは次のようになります。
これまでのところ私はこれを持っています:
しかし、それは少し厄介なようです。誰かがもっと簡潔な(そして読みやすい)方法を思い付くことができますか?
php - PHPでビットマスクまたはリレーショナルACLを実装する
PHPの人々はE_ALL
、関数のおよびその他のさまざまなビットマスク定数に精通していると思いerror_reporting()
ます。それらは数値定数です。例:E_ALL
means32676
とE_NOTICE
means 8
。私はすべてのエラーが欲しいと言うことができますが、通知が表示されます。これはE_ALL & ~E_NOTICE
、の引数として渡すことによって行いますerror_reporting()
。しかし、本質的に、私はそれ32759
がどちらであるかを伝えます32767 - 8
。
これらのビットマスクは、f(x) = 2^x
関数の出力セットから値を取得し、これらの値に対して加算および減算演算を実行することで、取得するエラーを微調整できます。
フレームワークに実装する、より構成可能なアクセス制御を考えています。このために、ユーザーのビットマスクに数値を加算するのと同じ方法を設定したいのですが、問題は、これを実行する方法、要求された値と現在の値を確認する方法がわからないことです。ユーザーはfoobarにアクセスする権限がありますか?。
そしてもう1つの問題はスケーラビリティです。私は31個の一意のビットしか持っていない可能性があり(2^32
大きすぎて保守不可能な状態に達するため)、この障壁を経験する必要がある場合(現在は実際には計画されていません)、移行するのは難しいでしょうか?user.id
アクセス制御についての他の考えは、彼が持っているアクセスビットの整数値とをリンクするテーブルを設定することです。
まとめると、次の2つのオプションのどちらがより良い解決策ですか?:
- ユーザーのテーブルの1つのフィールドを使用してビットマスクを格納し、必要に応じてそこから要求されたビットをフェッチします。
- テーブルにアクセスフラグのセットを定義し、ユーザーをアクセスにリンクするリレーションテーブルを用意して、リレーショナルデータベースの素晴らしさをニーズに合わせて活用します。
私は2番目の方法について研究していましたが、どちらを使用するのが最適かわかりません。
c - &、&&および|の分析 このコードのために?
このコードとの違いを説明したい
コードでは、&はビットを「マスク」するために&&
使用されており、代わりに使用された場合、結果は完全に異なります。その場合、式は、ビットの1つを保持するために使用される1ビット位置ではなく1
、真理値()として解釈されていました。TRUE
正しい?しかし、私がこのようにした場合、代わりに何が起こるでしょうか:
最初のケースで1
は、はLSB(最下位ビット)のみ、つまり右端のビットのみを保持するために使用されます。その代わりに何を|
しますか?この変更を行った場合の違いは何ですか?
mongodb - ビットマスク比較 Mongo クエリ
ブログ webapp の場合、一連のユーザー、ブログ、および mongo のリソースに対するアクションをモデル化しようとしています。ユーザーは、「ブログ投稿」、「リンク」、「画像」などのブログ投稿の「いいね」、「スター」、「機能」リソースなどのアクションを実行できます。
モデルは次のようになります
ユーザー(user_id: long) リソース(resource_id: long) リソース/アクション(int)
最初の 16 ビットはアクションを格納するために使用され、次の 15 ビットはそれがどのタイプのリソースであるかを識別するために使用されます。
クエリが与えられた場合、ブログ投稿を高く評価したユーザーのリストを見つけます。
mongo でこれをモデル化してクエリする最良の方法は何でしょうか?
みたいなことを考えた
クエリ パラメータとリソース/アクション フィールドでビットマスク AND 演算を使用して、正しいレコードをフィルタリングします。しかし、mongo はビット演算をサポートしていないようです。この目的で $where javascript 関数を使用できることを読みましたが、クエリに js 関数呼び出しを使用した場合のパフォーマンスが心配です。
このユースケースを達成するための良い方法は何ですか?
ありがとう!
c - char を 0xFF でマスキングすることとキャストすること (unsigned char) の違いは何ですか?
上記のコードは次のようになります。
警告: データ型の範囲が限られているため、比較は常に false
思った通りのエラー。
入力すればOK
また
1枚目はわかるけど2枚目はどうなるの?
でマスキングする効果は0xFF
?