zoukankan      html  css  js  c++  java
  • 《程序员代码面试指南》第七章 位运算 不用额外变量交换两个整数的值

    题目

    不用额外变量交换两个整数的值
    

    解析

    异或运算的特点:
    假设a异或b的结果为c,c就是a整数位信息和b整数位信息的所有不同信息
    异或的逆运算为它本身
    比如 a=4=100, b=3=011, a^b=c=000;
    a异或c的结果为b, a=4=100, c=000, a^c=3=011;
    b异或c的结果为a, b=3=011, c=000, b^c=4=100;
    

    java代码

    package com.lizhouwei.chapter7;
    
    /**
     * @Description: 不用额外变量交换两个整数的值
     * @Author: lizhouwei
     * @CreateDate: 2018/4/26 21:07
     * @Modify by:
     * @ModifyDate:
     */
    public class Chapter7_1 {
    
        public void swap(int a, int b) {
            System.out.println("交换前 a="+a+" b="+b);
            a = a ^ b;
            b = a ^ b;
            a = a ^ b;
            System.out.println("交换后 a="+a+" b="+b);
        }
    
        //测试
        public static void main(String[] args) {
            Chapter7_1 chapter = new Chapter7_1();
            chapter.swap(4,5);
        }
    }
    
    
    

    结果

  • 相关阅读:
    The nineteenth day
    The eighteen day
    弱读下
    弱读上
    失爆 爆破音
    连读
    The seventeenth day
    The sixteenth day
    React 官方脚手架 create-react-app快速生成新项目
    pc端引入微信公众号文章
  • 原文地址:https://www.cnblogs.com/lizhouwei/p/8955204.html
Copyright © 2011-2022 走看看