2つの整数変数の値を交換します(サードパーティ変数は必要ありません).
615 ワード
テーマ要求:コンソールから2つの整数値を受け入れ、サードパーティ変数を使用せずに2つの変数の値を交換することを要求します.
分析:一見、簡単だと思っている人もいるようですが、和を利用して完成させたいと思っています.
a=a+b;
b=a-b;
a=a-b;
しかし、この演算ではオーバーフローが発生する可能性があるため、望ましくない.だから別の道を探して、みんなはコンピュータの中で最も速い演算が何なのか知っていますか?対はビット演算であるため、ビット演算における和演算により2つの数の交換を実現することができ、具体的な実現コードは以下の通りである.
3回の同じ演算で2つの数値の交換が可能になりますが、いかがでしょうか.以前よりずっと速くなったのではないでしょうか.
読んでくれてありがとう!
分析:一見、簡単だと思っている人もいるようですが、和を利用して完成させたいと思っています.
a=a+b;
b=a-b;
a=a-b;
しかし、この演算ではオーバーフローが発生する可能性があるため、望ましくない.だから別の道を探して、みんなはコンピュータの中で最も速い演算が何なのか知っていますか?対はビット演算であるため、ビット演算における和演算により2つの数の交換を実現することができ、具体的な実現コードは以下の通りである.
public static void main(String[] args) {
int a =3555,b=45555;
System.out.println("a="+a+"b="+b);
a = a^b;
b = a^b;
a = a^b;
System.out.println("a="+a+"b="+b);
}
3回の同じ演算で2つの数値の交換が可能になりますが、いかがでしょうか.以前よりずっと速くなったのではないでしょうか.
読んでくれてありがとう!