[解決済み] C言語におけるi = i&1とはどういう意味ですか?
2022-02-18 06:16:15
質問内容
このサンプルコードを入手したのですが、どのように動作するのか本当に理解できません。GCCによってコンパイルされ、エラーは全くありません。
また、このコード " の部分を教えてください。 i = i&1 "するのですか?ありがとうございます。
int main(void){
int i;
for (i = 5; i--; i = i&1) {
puts("iteration");
}
printf("%d\n",i);
return 0;
}
このプログラムの出力は
反復
-1
解決方法は?
for-Loopの先頭で。
- iが5に設定される
次のステップは iを確認する--ということです。
- 最初:i = 5 > 0 => true
- 2番目:iをi - 1に設定する => i = 4
次のステップ:インナーブロックを行う。
次のステップ:i = i & 1、その結果、次のようになります。
- 4&1 => 0100 & 0001 => i = 0
次のステップ iをチェックする--。
- 最初:i = 0 => false
- 2番目:iをi - 1に設定する => i = -1
関連
-
[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] なぜ ++[[]][+[] +[+[]] は "10" という文字列を返すのでしょうか?
-
[解決済み] C言語のコードで「:-!」とは何ですか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
最新
-
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の入力の最後に期待される宣言またはステートメント
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み] struct で "warning: useless storage class specifier in empty declaration" (警告: 空の宣言での無駄なストレージクラス指定子)
-
[解決済み】 「配列のイニシャライザーはイニシャライザーリストまたは文字列リテラルでなければなりません」と表示されるのですが?
-
[解決済み】サイズ8の無効な読み取り - Valgrind + C
-
[解決済み】fgetsによるセグメンテーションフォールト(コアダンプ) - と思う。
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み】警告:引数「互換性のないポインタ型から」を渡す[デフォルトで有効]。
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?