批處理 不用中間變數,交換兩個變數值

2021-07-26 09:39:39 字數 1428 閱讀 4150

-------siwuxie095

法一:直接交換(不限)

@echooff

setvar1=abc

setvar2=123

echo

交換前:

var1=%var1%var2=%var2%

setvar1=%var2%& setvar2=%var1%

echo

交換後:

var1=%var1%var2=%var2%

pause

sublime中:

執行一覽:

注意:如果 set var1=%var2% & set var2=%var1%

分開成兩段寫,就達不到交換的效果了

法二:異或---位運算(僅限數字)

@echooff

setx=10

sety=1

echo

交換前:

x=%x%y=%y%

set/a x=x^^y

set/a y=x^^y

set/a x=x^^y

echo

交換後:

x=%x%y=%y%

pause

sublime中:

執行一覽:

法三:加減法---數學原理(僅限數字)

@echooff

setvar1=123

setvar2=456

echo

交換前:

var1=%var1%var2=%var2%

set/a var1=%var1%+%var2%

set/a var2=%var1%-%var2%

set/a var1=%var1%-%var2%

echo

交換後:

var1=%var1%var2=%var2%

pause

sublime中:

執行一覽:

不用中間變數交換兩個數的值

當要交換兩個數的值時,通常的做法是定義乙個臨時變數,然後再進行交換。那麼能不能不用臨時變數而交換兩個數的值呢?可以的!c語言提供的異或運算就可以實現這樣的操作。異或運算子 也稱xor運算子,它的規則是若參加運算的兩個二進位同號,則結果為0 假 異號為1 真 即0 0 0,0 1 1,1 0 1,1 ...

不用臨時變數,交換兩個變數的值

在學習c語言的時候,涉及到兩個變數值的交換,其中用到臨時變數。類似於 temp a a b b temp 這樣的語句,如果在沒有臨時變數的情況下,該如何做呢?網路上的人們給出了兩種方法 一 異或法 a a b b b a a a b 二 加減法 a a b b a b a a b 其實我們看加減法更...

怎樣不用中間變數temp 實現兩個數交換

第一類方法也是常用的方法,通過多次的數值計算來完成交換,到現在知道的有下面三種 1 加減法。a a b b a b a a b 該方法可以交換整型和浮點型數值的變數,但在處理浮點型的時候有可能出現精度的損失,例如對資料 a 3.123456 b 1234567.000000 交換後各變數值變為 a ...