Java基础知识--“位移”

作者: Android那些事儿 | 来源:发表于2017-06-21 14:20 被阅读19次

** 文章摘要 **
1、移位包括左移和右移。左移相当于乘法,右移相当于除法。
2、右移包括带符号右移,无符号右移。


一、“位移”操作规则
1、左移:“a<<b”,将二进制a依次左移b位,低位空出来的b个位置补0。
2、带符号右移:“a>>b”,将二进制数a依次右移b位,高位空出来的b个位置,补充原来的符号位,即:正数补0,负数补1。
3、无符号右移:“a>>>b”,将二进制数a依次右移b位,高位空出来的b个位置,补0。

  • 1、左移3位操作实例:
value 移位前 移位后
-2) 11111111111111111111111111111110 11111111111111111111111111110000(-16)
2 0000 0010 0001 0000(16)
  • 2、带符号右移3位实例:
value 移位前 移位后
-16 11111111111111111111111111110000 11111111111111111111111111111110(-2)
16 0001 0000 0000 0010(2)
  • 3、无符号右移3位实例:
value 移位前 移位后
-16 11111111111111111111111111110000 00011111111111111111111111111110
16 0001 0000 0000 0010(2)

二、“位移”操作的运用

一般来说,位移比乘除算式运算效率更高。

1、左移相当于乘法,每移一位相当于乘2;

System.out.println("1<<1 = "+(1<<1)
 +",1<<2 = "+(i<<2)
 +",1<<3 = "+(i<<3));//1<<1 = 2,1<<2 = 4,1<<3 = 8

2、右移相当于除法,每移一位相当于除2;

System.out.println("8>>1 = "+(8>>1)
 +",8>>2 = "+(8>>2)
 +",8>>3 = "+(8>>3));//8>>1 = 4,8>>2 = 2,8>>3 = 1

相关文章

  • Java基础知识--“位移”

    ** 文章摘要 **1、移位包括左移和右移。左移相当于乘法,右移相当于除法。2、右移包括带符号右移,无符号右移。 ...

  • Java中的位移运算

    在Java中,位移运算属于基本运算,符号是<<和>>,即向左位移和向右位移。在Java中只有整数才能位移,所以其他...

  • java 位移

    一、左移 << 逻辑左移,右边补0,符号位和其他位一样移动。 在没有数字溢出的情况下,左移一位相当于✖️2的1次方...

  • Java基础系列之位移

    Java中的位移其实我们很少使用,但是大家一定要明白位移的原理

  • 零基础学UI设计教程分享C4D中重点难点分析

    一、 C4D中基础知识 1、世界的旋转、缩放和位移 旋转:Alt+鼠标左键 缩放:Alt+鼠标右键 位移:Alt+...

  • C4D中重点、难点分析整理,新手小白一定要认真看!

    1、 C4D中基础知识 1、世界的旋转、缩放和位移 旋转:Alt+鼠标左键 缩放:Alt+鼠标右键 位移:Alt+...

  • java位移操作

    十进制、二进制 十进制数在计算机中的表示方法,对于正数和负数是不一样的。负数:绝对值对应的二进制,取反码,将反码加...

  • java位移操作

    用移位操作可以极大地提高性能,对于乘除2^n(n为正整数)的正整数计算,可以用移位操作来代替。 int num1 ...

  • Android 知识梳理目录 - 好吧,这是一个很"干

    一、Java 知识梳理 Java&Android 基础知识梳理(1) - 注解Java&Android 基础知识梳...

  • java基础知识

    title: java基础知识tags: [java基础知识] 位运算符 java种的运算符有 “&”,“|”,“...

网友评论

    本文标题:Java基础知识--“位移”

    本文链接:https://www.haomeiwen.com/subject/lkvzqxtx.html