問題タブ [byte-shifting]
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 - 複数のマスクなしでより多くの値でビットマニピュレーションを行う方法は?
私はこの割り当てを持っていますが、これを行う方法がわかりません。単純なグーグルは役に立ちません。また、何を検索すればよいか正確にはわかりません。
しかし、私は時間、分、秒を含む時計/時計を作成しています。そして、私が使用するために与えられたビットマスクは次のとおりです。
私がこれまでに理解したのは、時間ビットの量が 0 -> 11 の 12 のオプションに適合する理由であるということです。そして、0 -> 59 の分と秒の 6 ビット。
何時間もの間、考えられる時間ごとに 12 個の個別のビットマスクを作成して暗闇の中で過ごしました。終わった後、これを何分も何秒もやらなければならないことに気付きました。これは 120 行の不要なコードになります。
これは私がしたことです:
解決策はビットシフトに関係していると思いますが、それを行う方法がよくわかりません。
0001 (0 時間) を 1010 (8 時間) に変更する例を教えてください。これをコードに実装して、自分で理解することができます。
c - 等号でビットシフトすると、等号でない場合とは異なる結果が出力されるのはなぜですか?
01 と 02 の大文字小文字が異なるのはなぜですか?
c - エンディアンに関して移植可能な同じマスクを使用して msb と lsb を取得していますか?
次の C コードが 32 ビット プラットフォーム (したがって sizeof(int) = 4) で実行されると仮定すると、次のコードはビッグ エンディアンとリトル エンディアンの間で移植可能ですか? 「ポータブルですか」と尋ねると、アプリが印刷されることを意味します。
a) リトルエンディアンプラットフォーム
b) ビッグエンディアンのプラットフォーム
?