关闭

交换两个变量的值

标签: 位运算
100人阅读 评论(0) 收藏 举报
分类:
/*
位运算符可能会出现的笔试题目:
1. 交换两个变量的值,不准出现第三方变量。


2. 取出一个二进制数据的指定位数。要求读取该二进制数据的低4位
00000000-00000000-00010100-01001101
&   00000000-00000000-00000000-00001111
------------------------------------------
00000000-00000000-00000000-00001101
*/
class Demo10 {


public static void main(String[] args) 
{
int a = 3;
int b = 5;

/*
第一种方式: 定义第三方变量。
int temp = a;  //3 
a = b; //a = 5 
b = temp; 

方式2:相加法, 缺点: 两个int类型的数据相加,有可能会出现超出int的表示范围。

a = a+b;  // a =8
b = a-b; //b = 8 - 5 = 3
a = a-b; // a = 8 - 3 = 5

方式3: 可以使用异或。 缺点: 逻辑不清晰。
*/
a = a^b;  // a = 3^5
b = a^b;  // b = (3^5)^5 = 3
a = a^b; //  a = (5^3)^3 = 5 
System.out.println("a = "+ a+" b="+b);
}
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8659次
    • 积分:382
    • 等级:
    • 排名:千里之外
    • 原创:30篇
    • 转载:11篇
    • 译文:0篇
    • 评论:0条
    文章分类