Java 位运算(移位、位与、或、异或、非)

原创 2016年04月08日 21:57:11
public class Test{
    public static void main(String[] args) {
        // 1、左移( << )
        // 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0://
        // 0000 0000 0000 0000 0000 0000 0001 0100 换算成10进制为20
        System.out.println(5 << 2);// 运行结果是20

        // 2、右移( >> ) 高位补符号位
        // 0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0:
        // 0000 0000 0000 0000 0000 0000 0000 0001
        System.out.println(5 >> 2);// 运行结果是1

        // 3、无符号右移( >>> ) 高位补0
        // 例如 -5换算成二进制后为:0101 取反加1为1011
        // 1111 1111 1111 1111 1111 1111 1111 1011
        // 我们分别对5进行右移3位、 -5进行右移3位和无符号右移3位:
        System.out.println(5 >> 3);// 结果是0
        System.out.println(-5 >> 3);// 结果是-1
        System.out.println(-5 >>> 3);// 结果是536870911

        // 4、位与( & )
        // 位与:第一个操作数的的第n位于第二个操作数的第n位如果都是1,那么结果的第n为也为1,否则为0
        System.out.println(5 & 3);// 结果为1
        System.out.println(4 & 1);// 结果为0

        // 5、位或( | )
        // 第一个操作数的的第n位于第二个操作数的第n位 只要有一个是1,那么结果的第n为也为1,否则为0
        System.out.println(5 | 3);// 结果为7

        // 6、位异或( ^ )
        // 第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0
         System.out.println(5 ^ 3);//结果为6 

        // 7、位非( ~ )
        // 操作数的第n位为1,那么结果的第n位为0,反之。
        System.out.println(~5);// 结果为-6 
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言基础 - extern,移位与或非

1,extern在OC中的使用 1),首先在合适的地方定义一个全局的变量,并在合适的地方赋值,赋值可以在声明时候赋值,也可以在定义的类中或者其它任何使用该全局变量的时候赋值和更改全局变量的值; ...
  • walden00
  • walden00
  • 2015年10月17日 09:28
  • 434

Java_语法基础_移位运算的真实剖析

Java中定义了3种移位运算符,分别是左移运算符“”和无符号右移运算符“>>>”,对于移位运算,移位运算两边的操作数要求为整型,即byte、short、char、int或long类型,或者通过拆箱转换...
  • u012552052
  • u012552052
  • 2015年03月24日 14:33
  • 1729

java移位运算符

移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:>(带符号右移)和>>>(无符号右移)。   在移位运算时,byte、short和char类型移位后的结果会变成...
  • E01014165
  • E01014165
  • 2016年05月09日 21:24
  • 1203

C/C++以及Java中移位的问题以及负数移位

#include "iostream" typedef unsigned char byte; using namespace std; int main(){ int x = 0x8000000...
  • yutiannanjingjiangsu
  • yutiannanjingjiangsu
  • 2013年08月14日 21:53
  • 1006

[C++]bitset特殊用法

bitset特殊用法 本文我们介绍一个用bitset来解决特殊的问题。 问题产生Give you N numbers a[1]…a[n] and M numbers b[1]…b[m] For...
  • stary_yan
  • stary_yan
  • 2016年05月20日 17:25
  • 1102

Java移位运算符 “<<” 作用及详解

左移运算符( 基本用法 将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。 例:a = a 左移1位后a = a *2;  若左移时舍弃的高位不包含1,则每左移一位...
  • zjx409
  • zjx409
  • 2014年07月08日 19:04
  • 2768

Java中的移位操作——Java编程思想笔记

Java中的移位操作及移位进行乘除法的简单分析
  • alading2009
  • alading2009
  • 2014年10月10日 20:05
  • 1455

java移位运算符详解

java移位运算符不外乎就这三种:>(带符号右移)和>>>(无符号右移)。  1、 左移运算符 左移运算符 1)它的通用格式如下所示: value num 指定要移位值value 移动的位数。 左...
  • sxh850297968
  • sxh850297968
  • 2015年03月13日 17:56
  • 9655

Java的移位操作(收集+纠正)

此收集来源于网络收集,是我整理、纠正以及排版,来为大家提供全面一点的知识讲解,可能有些地方排的不好,望谅解。 ============================================...
  • njchenyi
  • njchenyi
  • 2013年03月01日 13:58
  • 1637

Java 的移位运算

在Think in Java中有这么一段话“对char,byte或者short进行移位处理,那么在移位进行之前,它们会自动转换成一个int。只有右侧的5个低位才会有用。这样可防止我们在一个int数里移...
  • majian_1987
  • majian_1987
  • 2016年06月15日 14:17
  • 1320
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 位运算(移位、位与、或、异或、非)
举报原因:
原因补充:

(最多只允许输入30个字)