[解決済み] bitParity - 整数中の奇数ビットを探す
2022-02-09 09:42:53
質問
関数を作成する必要があります。
bitParity(int x)
整数を受け取って
1
が奇数であれば
0
のビット形式では
x
であり、かつ
0
それ以外の場合は
例
bitParity(5) = 0, bitParity(7) = 1
しかし、この問題ではビット演算子しか使えないので難しいです(
! ˜ & ˆ | + << >>
が唯一の合法的なものです)。つまり、ループがない。
if-then
のようなものです。定数は使用可能です。
今のところ、私が持っているものは動作しませんが、私は、整数のビットをシフトするべきだと考えました。
16
,
8
および
4
回と
XOR
残りの整数
どなたかアドバイスをお願いします。ありがとうございます。
どのように解決するのですか?
これはループで解決するのが正しい。しかし、ここでは、ループを使わずに解決する方法を紹介します。
x = (x & 0x0000FFFF) ^ (x >> 16)
x = (x & 0x000000FF) ^ (x >> 8)
x = (x & 0x0000000F) ^ (x >> 4)
x = (x & 0x00000003) ^ (x >> 2)
x = (x & 0x00000001) ^ (x >> 1)
編集:&は必要ないですね。より良いバージョンです。
x ^= x >> 16
x ^= x >> 8
x ^= x >> 4
x ^= x >> 2
x ^= x >> 1
x &= 1;
関連
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】エラー:イニシャライザー要素がロード時に計算可能でない
-
[解決済み】エラー。非スカラー型への変換を要求された
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み】Makefile:1: ***セパレータがありません。停止します。
-
[解決済み】C言語でpow( )への未定義参照、math.hを含むにもかかわらず【重複】。
-
[解決済み] JavaScriptでカンマを桁区切りにして数値を表示する方法
-
[解決済み] JavaScriptで文字列を整数に変換する方法は?
-
[解決済み] Pythonで整数から文字列に変換する
-
[解決済み] 先頭のゼロを含む表示番号
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C言語で「関数の型が競合しています」と表示される、なぜ?
-
[解決済み】単項演算子「*」の型が無効(「int」がある)C言語でのエラー
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み】LEALアセンブリ命令は何をするのですか?
-
[解決済み】サイズ8の無効な読み取り - Valgrind + C
-
[解決済み】LinuxのI_PUSHに相当するもの
-
[解決済み] C: エラー: ';'トークンの前に ')' があると予想される
-
[解決済み】インクリメントオペランドとして lvalue が必要です。
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】c - 警告:関数 'printf'の暗黙の宣言