java中关于移位运算符的demo与总结

首先,移位运算符有三种,其操作类型只支持:byte / short / char / int和long五种。

<< 左移运算符,表示将左边的操作数的二进制数据向左移动*位,移动后空缺位以0填充,多余位舍弃。(等同于乘2的n次方)

>> 右移运算符,二进制数据向右移动*位,就在其二进制数据后抹掉几位?(这里还不错定,但个人理解是这样的)(等同于除2的n次方)

>>> 无符号右移运算符,不管移动前最高位是0还是1,右移后左侧产生的空位部分都以0来填充。

下面我们借一个demo帮助理解:

public static void main(String[] args){
        int a = 16;
        int b = a << 2;//左移2,等同于16 * 2的2次方,也就是16 * 4
        int c = a >> 2;//右移2,等同于16 / 2的2次方,也就是16 / 4

        System.out.println("a的二进制数据为:" + Integer.toBinaryString(a));
        System.out.println("a左移后二进制数据为:" + Integer.toBinaryString(b));
        System.out.println("a右移后二进制数据为:" + Integer.toBinaryString(c));

        System.out.println("a左移后的值为:" + b);
        System.out.println("a右移后的值为:" + c);
    }
}

查看运行结果,如图所示:

首先,16的二进制数据为:10000;

左移两位,10000变成1000000;

右移两位,10000变成100;

把得到的二进制数据转换成普通数据后,

a左移后的值为64,既16 * 2的2次方(16 * 4)。

a右移后的值为4,既16 / 2的2次方(16 / 4)。

看完这个demo再理解移位运算符是不是就简单很多?

时间: 2024-10-06 18:25:36

java中关于移位运算符的demo与总结的相关文章

java中的移位运算符:&lt;&lt;,&gt;&gt;,&gt;&gt;&gt;总结

java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >> 1,相当于num除以2 >>>    :     无符号右移,忽略符号位,空位都以0补齐 下面来看看这些移位运算都是怎样使用的 1 /** 2 * 3 */ 4 package com.b510.test; 5 6 /** 7 * @author Jone Hongten 8 * @

java中的移位运算符

java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >> 1,相当于num除以2 >>>    :     无符号右移,忽略符号位,空位都以0补齐 int number = -1; //原始数二进制 printInfo(number); number = number << 1; //左移一位 printInfo(number)

java中的移位运算符与正负数转换

移位 java 中有对 二进制移动分为 左移(<<) 和右移(>>) 其中右移还分为 有符号右移(>>) 和无符号右移(>>>) 1.有符号右移:将二进制向右移动 如果原来符号位为0 则新符号位也用0 否则用1; 2.无符号右移:将二进制向右移动 不管原来的符号位是0还是1 一律用0 补位; 正负数转换 举个例子: 3的二进制 用一个字节表示 0000 0011 正常一个负数的变现方式是:其正数按位取反再加1 0000 0011 取反:1111 110

java中有三种移位运算符

<<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >> 1,相当于num除以2 >>>    :     无符号右移,忽略符号位,空位都以0补齐

Java 中的instanceof 运算符

Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:result = object instanceof class参数:Result:布尔类型.Object:必选项.任意对象表达式.Class:必选项.任意已定义的对象类.说明:如果 object 是 class 的一个实例,则 instanceof 运算符返回 true.如果 object 不是指定类的一

Java基础---Java中的比较运算符(十三)

Java中的比较运算符 比较运算符用于判断两个数据的大小,例如:大于.等于.不等于.比较的结果是一个布尔值( true 或 false ). Java 中常用的比较运算符如下表所示: 注意哦: 1.  > . < . >= . <= 只支持左右两边操作数是数值类型 2.  == . != 两边的操作数既可以是数值类型,也可以是引用类型 代码: public class HelloWorld{    public static void main(String[] args) {  

java中的基本运算符、取余、逻辑运算符、逻辑运算符、位运算符、移位运算符

注意事项: 常量在编译的时候会赋值,变量在运行的时候才在内存中分配空间赋值. 赋值运算符 += -+ *+ %= \= 在java编译器会进行强制类型转换 取余: 在java中做取余运算的是时候,结果的正负号是取决于被除数. 逻辑运算符&且 |或 !非 ^异或 &&短路与 ||短路或 位运算符:直接操作二进制位的. & (与) 6 & 3 = 2 0000 0110 可以把1看成true & 0000 0011 0看成false --------------

java中的三元运算符详解

最近在带领实习生中遇到很多新手问与三元运算符有关的java题目,多数为代码结果题,少数为应用题.鉴于很多资料上对于java三元运算的讲解过于简单,网上的资料与题目也不是很完善,对于结果答案分析不一,故在此总结,当然仅为个人观点,水平有限,不足之处,还请大家多多指出,互相交流学习. 什么是java三元运算符呢?无疑其操作元有三个,第一个是条件表达式,剩余两个为值,条件表达式为真时运算取第一个值,为假时取第二个值. 其示例代码如下:boolean a = 20 < 45 ? true : false

慕课网-安卓工程师初养成-3-2 Java中的算术运算符

来源:http://www.imooc.com/code/1279 算术运算符主要用于进行基本的算术运算,如加法.减法.乘法.除法等. Java 中常用的算术运算符: 其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴 运行结果: 运行结果: 一定要注意哦!自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ . 8-- 等写法都是错误滴! PS:% 用来求余数,也称为”取模运算符“ 任务 亲,算术运算符的使用你学会了吗?让我们来检验一下吧.