Java基础知识--“位移”

** 文章摘要 **
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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 13,011评论 0 13
  • 1. 关于诊断X线机准直器的作用,错误的是()。 (6.0 分) A. 显示照射野 B. 显示中心线 C. 屏蔽多...
    我们村我最帅阅读 13,742评论 0 5
  • •1 C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语...
    CONLYOUC阅读 12,793评论 9 66
  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 7,662评论 0 5
  • 我们都很羡慕做销售的人,一是销售的发展空间大工资相对比较有弹性,二是做销售的人都特别能说会道。 而对于内向的人来讲...
    芬芬vstar阅读 5,438评论 29 101

友情链接更多精彩内容