No.1ベストアンサー
- 回答日時:
XOR交換アルゴリズムって面白い
https://qiita.com/Riliumph/items/9f3719b2db39cf1 …
度肝を抜かれるSWAPマクロ (C言語)
http://tricky-code.net/nicecode/code01.php
xとyの値を入れ替えてる。
int main() {
int x=1, y=2;
printf("x=%d\n", x); // x=1
printf("y=%d\n", y); // y=2
x^=y^=x^=y;
printf("x=%d\n", x); // x=2
printf("y=%d\n", y); // y=1
return 0;
}
No.3
- 回答日時:
x^=(y^=(x^=y));
なら、わかりますか?
え、わからない?
それでは、
x^=y;
はわかりますよね。
ならば、
y^=(x^=y);
もわかるでしょう。
No2さんの心配されているように、
3回目の ^= の演算時に使われる x の値は、
1回目の ^= の演算の結果の x の値なのか、演算前の x の値なのか、
処理系により異なる気がしますので、遊びで使うのは良いですが、まともなプログラムでは使われない方がよいと思います。
No.4
- 回答日時:
いちおう補足しとくと, 例えば
(x^=y, y^=x, x^=y);
なら正しいんだよね....
「正しい」分だけ
x^=y^=x^=y;
よりはましだけど「お説教コース」であることは変わらんな.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- C言語・C++・C# 参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++ 3 2022/12/22 01:49
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- C言語・C++・C# プログラム内から、MIDIファイルの一部分だけを再生する方法 1 2023/02/15 11:08
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- C言語・C++・C# C言語で移動平均のプログラムを作りたいのですが、数値をファイルから取ってきて計算をするプログラムはど 1 2022/09/29 01:21
- オープンソース IT用語、ソースとオブジェクト、改変と翻訳と翻案の違いなど どのようにりかいすればよいのですか 1 2022/09/09 10:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
4の倍数を論理演算で表す。。
-
10個出力で改行したいのですが...
-
hit&bolwのプログラミングがで...
-
defineで定数が置き換えられな...
-
strcmp
-
c言語 プログラム ピラミッド
-
コンパイルすると『breakの位置...
-
パスカルの三角形についてのCプ...
-
C言語での、年複利の計算方法...
-
if文がコンパイルエラーを起こ...
-
Cでオセロゲームプログラム
-
コンパイルエラーについて
-
困ってます!Cプログラミングに...
-
error C2143: 構文エラー : ';'...
-
C言語です このプログラミング...
-
平均合計偏差値標準偏差の出し方
-
Cプログラミングのアルゴリズム...
-
C言語についてです学籍番号、名...
-
円の面積を求めるプログラミン...
-
コマンドプロンプトがすぐ消える
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
コンパイルエラーについて
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報