博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java按位与、按位或、异或、移位、按位非
阅读量:5142 次
发布时间:2019-06-13

本文共 1579 字,大约阅读时间需要 5 分钟。

/**     * 测试按位与、按位或、异或、移位、按位非     */    @Test    public void testYiWei() {        int i = 3; //对应二进制 ...11        int j = 2; //对应二进制 ...10        int k = -3; //对应二进制 10000000 00000000 00000000 00000011(原码)        //按位与& 从高位开始两个都为1 为1,否则 为0        System.out.println(i & j); //10(2进制) -> 2(10进制)        //按位或| 从高位开始只要1个为1 为1,否则 为0        System.out.println(i | j); //11(2进制) -> 3(10进制)        //异或^= 从高位开始相同为0,否则 为1        System.out.println(i ^ j); //01(2进制) -> 1(10进制)        //左移位<<1 向左移位1位,最低位补0,原来的第二高位现在成为最高位        System.out.println(i << 1); //0011 移位后 0110,对应10进制的6        //右移位>>1 向右移位1位,最高位补上符号位,且不变        /*            移位前 11111111 11111111 11111111 11111101(补码)            移位后 11111111 11111111 11111111 11111110(补码),            对应原码 10000000 00000000 00000000 00000010        */        System.out.println(k >> 1); //-2(10进制)        //无视符号右移位>>>1 向右移位1位,最高位补上0        /*            移位前 11111111 11111111 11111111 11111101(补码)            移位后 01111111 11111111 11111111 11111110(补码),            对应原码 01111111 11111111 11111111 11111110        */        System.out.println(k >>> 1); //2147483646即2^31-1-1(10进制)        /*            按位非的流程:            00000000 00000000 00000000 00000010  1.2的2进制(这里是补码,因为是正数,所以和原码一样)            11111111 11111111 11111111 11111101  2.位非            11111111 11111111 11111111 11111100  3.取原码  (-1)            10000000 00000000 00000000 00000011  3.取原码  (取反)        */        System.out.println(~j); //-3(10进制)    }

这里需要知道原码补码反码的一些知识,https://www.jianshu.com/p/129f9daae472(个人觉得这篇文章讲得不错)

转载于:https://www.cnblogs.com/lujiannt/p/9242297.html

你可能感兴趣的文章
[转]《城南旧事》里的《送别》
查看>>
07动手动脑
查看>>
django知识点总结
查看>>
C++ STL stack、queue和vector的使用
查看>>
python内嵌函数
查看>>
java.util.Map按照key值合并的value的Collection 集合中。
查看>>
DBCC--CHECKDB--结果收集
查看>>
MySQL--如何快速对比数据
查看>>
设置css样式背景色透明 字体颜色的不透明 设置select 箭头样式
查看>>
hudson--ant编写记录
查看>>
PDO简单的DB类封装
查看>>
DirectDraw教程资料
查看>>
P2157 [SDOI2009]学校食堂 状压DP
查看>>
Java并发之AQS详解(转)
查看>>
Showbo.Msg.alert
查看>>
iOS6 中 Smart App Banners介绍和使用(转自COCOACHINA.COM)
查看>>
Mahout初体验
查看>>
ORA-12545: Connect failed because target host or object does not exist
查看>>
python正则表达式
查看>>
accept函数
查看>>