重複の可能性:
1 または 0 の連続するビット文字列を見つける
整数の連続する 1 を左から数えることはできますか? つまり、先頭ビットから始まる連続したセットビットの総数。
使用のみ:
! ~ & ^ | + << >>
-1
= 0xFFFFFFFF
32 を返す
0xFFF0F0F0
12 を返します (FFF = 111111111111)
残念ながらループはありません。
マシンを想定できます:
整数の 2 の補数、32 ビット表現を使用します。
右シフトを算術的に実行します。
ワード サイズを超えて整数をシフトすると、予期しない動作が発生します。
私は以下を禁じられています:
if、do、while、for、switch などの制御構造を使用します。
マクロを定義または使用します。
このファイルで追加の関数を定義します。
任意の関数を呼び出します。
&&、||、-、または ? などの他の操作を使用します。
あらゆる形式の鋳造を使用します。
int 以外のデータ型を使用します。これは、配列、構造体、または共用体を使用できないことを意味します。
私は 1 または 0 の連続したビット文字列の検索を見てきました 。使用できないループを使用しています。どこから始めればよいかさえわかりません。
(はい、これは課題ですが、十分なスキルをお持ちの方に助けを求めているだけです。必要な作業はほぼすべて完了しましたが、これはうまくいきません。)
(学校向けという理由だけで反対票を投じる方: FAQ: 1 特定のプログラミングの問題、チェック 2 ただし、「他の人に ______ を説明してもらいたい」という理由であれば、おそらく問題ありません。)