zoukankan      html  css  js  c++  java
  • 每日一题 为了工作 2020 0505 第六十三题

    package com.swust.bit.example63;
    /**
     * 【问题】
     *      如何不用额外的变量交换两个整数的值
     * 【分析】
     *      使用位运算 异或
     * 【解答】
     * 用以下三行代码即可交换a和b的值。
     * a = a ^ b;
     * b = a ^ b;
     * a = a ^ b;
     * 如何理解这三行代码的具体功能呢?首先要理解关于异或运算的特点:
     * 假设a异或b的结果记为c,c就是a整数位信息和b整数位信息的所有不同信息。
     * a=4=100, b=3=011   c=a^b=111。
     * a异或c的结果就是b。比如a = 4 = 100, c = 111, a^c = 011 = 3 = b。
     * b异或c的结果就是a。比如b = 3 = 011, c = 111, b^c = 100 = 4 = a。
     *
     * @author 雪瞳
     * @Slogan 时钟尚且前行,人怎能就此止步!
     * @Function 交换两个整数的值
     *
     */
    public class TransformIntNum {
        public static void main(String[] args) {
            int a = 12;
            int b = 10;
            a = a ^ b;
            b = a ^ b;
            a = a ^ b;
            System.err.println("交换后的值为 a = "+a+" b = "+b);
        }
    }
    

      

  • 相关阅读:
    LRU算法实现 最近最久未使用
    快速排序
    redis 常用命令
    实例:接口并发限流RateLimiter
    Hadoop伪分布式安装
    ssl免密登录(centos6)
    Linux下安装jdk-7u67-linux-x64.rpm
    Mosquitto安装和使用
    MQTT linux centOS7 部署
    CentOS更换yum源
  • 原文地址:https://www.cnblogs.com/walxt/p/12830192.html
Copyright © 2011-2022 走看看