国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

不使用臨時變量,實現整數互換

2019-11-10 19:08:46
字體:
來源:轉載
供稿:網友

1.不考慮溢出:

int a=1;

int b=2;

a=a+b;

b=a-b;

a=a-b;

網上解釋:

缺點:是只能用于數字類型,字符串之類的就不可以了。a+b有可能溢出(超出int的范圍),溢出是相對的, +了溢出了,-回來不就好了,所以溢出不溢出沒關系,就是不安全。

2異或運算()

1.異或算法(這種方法不借助第三個變量,也不會產生溢出,比較安全,但僅限整數類型)

             int a, b;             a = 20; b = 2;
             a = a ^ b;//a=10100,b=0010,兩者相異或的結果是10110,并保存在a中。            b = a ^ b;//a=10110,b=0010,兩者相異或的結果是10100,并保存在b中,換成是20
            a = a ^ b;//a=10110,b=10100,兩者相異或的結果是00010,保存在a中,換成十進制是2
先將a,b轉化為二進制在進行比較,若兩個二進制位相同,則結果為0,不同為1
第一步:a和b不相同取a(a=10100,b=0010)

第二步:a和b不相同取a(a=10110,b=10110)
第三步:a和b相同取b(a=0010)
a⊕b = (?a ∧ b) ∨ (a ∧?b)異或算法

3,直接賦值

int a=1;

int b=2;

b = a + (a = b) * 0;
或者
a = a + b - (b = a);
注:以下博客太深奧非專業人士勿進
http://blog.csdn.net/kangkermit/article/details/21371159 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福建省| 江源县| 武鸣县| 溧水县| 稷山县| 武宁县| 敦煌市| 清涧县| 错那县| 阿拉善左旗| 固安县| 海兴县| 闻喜县| 灵山县| 烟台市| 阿拉善左旗| 镇沅| 新密市| 天祝| 措美县| 阿荣旗| 酉阳| 溧水县| 苏州市| 峡江县| 顺昌县| 沭阳县| 鄂伦春自治旗| 乐平市| 陆良县| 广饶县| 富平县| 博白县| 张掖市| 鹰潭市| 九龙县| 双桥区| 蒲江县| 犍为县| 保康县| 惠安县|