简述

java有三种移位运算符,分别为:

左移运算符 <<

右移运算符 >>

无符号右移运算符 >>>

首先,移位运算符根据名字可知是使用二进制进行运算的。在integer.java中,我们可以看到有两个静态常量,min_value 和 max_value,这两个常量控制了integer的最小值和最大值,如下:

/**

* a constant holding the minimum value an {@code int} can

* have, -231.

*/

@native public static final int min_value = 0x80000000;

/**

* a constant holding the maximum value an {@code int} can

* have, 231-1.

*/

@native public static final int max_value = 0x7fffffff;

注释上说明这两个值得范围:

min_value(最小值) = -2^31 = -2,147,483,648‬

max_value(最大值) = 2^31 = 2,147,483,647

在32位运算中,首位为1则代表负数,0则代表正数,如:

1000 0000 0000 0000 0000 0000 0000 0000 负数,该值等于min_value

0111 1111 1111 1111 1111 1111 1111 1111 正数,该值等于max_value

根据上述可知,integer是32位运算的。

左移运算符 <<

使用 << 时,需要在低位进行补0,例子如下:

int a = 3;

system.out.println(integer.tobinarystring(a));

int b = a << 1;

system.out.println(integer.tobinarystring(b));

system.out.println(b);

system.out.println("----------------------------------------------");

int c = -3;

system.out.println(integer.tobinarystring(c));

int d = c << 1;

system.out.println(integer.tobinarystring(d));

system.out.println(d);

输入如下:

11

110

6

----------------------------------------------

11111111111111111111111111111101

11111111111111111111111111111010

-6

可以清楚的看到 3 << 1 时,在后面补0,得到 110 即等于6;

右移运算符 >>

右移运算符时,正数高位补0,负数高位补1。如:

int a = 3;

system.out.println(integer.tobinarystring(a));

int b1 = a >> 1;

system.out.println(integer.tobinarystring(b1));

system.out.println(b1);

system.out.println("----------------------------------------------");

int c = -3;

system.out.println(integer.tobinarystring(c));

int d = c >> 1;

system.out.println(integer.tobinarystring(d));

system.out.println(d);

输出如下:

11

1

1

----------------------------------------------

11111111111111111111111111111101

11111111111111111111111111111110

-2

无符号右移 >>>

在正数当中,>> 和 >>> 是一样的。负数使用无符号右移时,则高位不进行补位。

int c = -3;

system.out.println(integer.tobinarystring(c));

int d = c >>> 1;

system.out.println(integer.tobinarystring(d));

system.out.println(d);

输出如下:

11111111111111111111111111111101

1111111111111111111111111111110

2147483646

总结

左移运算符 << : 需要在低位进行补0

右移运算符 >> : 正数高位补0,负数高位补1

无符号右移运算符 >>> :在正数当中,>> 和 >>> 是一样的。负数使用无符号右移时,则高位不进行补位

希望与广大网友互动??

点此进行留言吧!

2 lt lt 8运算 java_Java移位运算符 lt;lt; gt;gt; gt;gt;gt;_Java_七九推相关推荐

  1. python左移位运算_python移位运算符

    1,二进制方式 >>> bin( 1)'0b1' >>> bin( 10)'0b1010' >>> a =0b10>>>a2 & ...

  2. python左移位运算_python 移位运算符只能用于整型吗

    匿名用户 1级 2016-12-29 回答 什么是操作符? 简单的回答可以使用表达式4 + 5等于9,在这里4和5被称为操作数,+被称为操符. Python语言支持操作者有以下几种类型. 算术运算符 ...

  3. 移位运算符,>>,<<以及>>>的含义以及运算方法

    移位运算符: 就是在二进制的基础上对数字进行平移.按照平移的方向和填充数字的规则分为三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 在移位运算 ...

  4. java 二进制、位运算、和移位运算符(2013-07-30-bd 写的日志迁移

    二进制是逢2进位的进位制,0.1是基本算符, 1字节=8位 比如 int a =1 ;int 占4个字节在计算机里表示为: java中的4个位运算,分别是"按位与&.按位或|.按位异 ...

  5. java中 移位运算_java中关于移位运算符的demo与总结(推荐)

    首先,移位运算符有三种,其操作类型只支持:byte / short / char / int和long五种. << 左移运算符,表示将左边的操作数的二进制数据向左移动*位,移动后空缺位以0 ...

  6. Java 移位运算符 >>、<< 、>>是怎样进行运算的?

    今天不知为啥突然想知道 移位运算符 是怎么进行计算的. >> 带符号右移 带符号右移,将整数换为二进制 向右移动一位 并且 正数在最高位添0,负数在最高位添 1. 例: 正数 10> ...

  7. java中的移位运算符

    移位运算符是在数字的二进制形式上进行平移.主要有左移(<<).带符号右移(>>)以及无符号右移(>>>). 左移运算符(<<)的运算规则为:按二进 ...

  8. Java二进制位运算、移位运算、、

    为什么80%的码农都做不了架构师?>>>    Java二进制位运算.移位运算 思考题 1.请看下面的代码段,回答a,b,c,d,e结果是多少? public static void ...

  9. java比较运算_Java比较运算符

    注意哦: 1.  > . < . >= . <= 只支持左右两边操作数是数值类型 2.  == . != 两边的操作数既可以是数值类型,也可以是引用类型 public clas ...

最新文章

  1. Spring IOC 之 加载 Bean
  2. 算法(第4版)学习笔记
  3. 关于Static控件背景透明时文本覆盖重影的问题
  4. 华为鸿蒙ai字幕,EMUI11一个值得吹爆的功能?AI字幕,支持翻译英日韩
  5. 6升小米6——算法解题
  6. OpenCV2学习笔记(十四):基于OpenCV卡通图片处理
  7. mysql c 多线程封装_mysqlConnectorC/C++多线程封装_MySQL
  8. python字典定义方式_Python字典常用方法及汇总
  9. django 与 vue 的完美结合
  10. FusionCharts V3图表导出图片和PDF属性说明
  11. Gentoo下搭建DNS中转服务器基本配置
  12. 从0开始html前端页面开发_CSS实现图像获取鼠标焦点逐渐变大动画效果
  13. abaqus盾构隧道建模实例_abaqus盾构施工模拟
  14. xmpp即时通讯协议的特性---长处和缺点!
  15. 原生ajax调用,JavaScript进阶之原生AJAX接口请求的方式
  16. 算法-舍弃不吉利数字
  17. Task05|joyfulpandas|变形
  18. 直播APP源码iOS 调用系统铃声震动
  19. GitLab允许开发人员推送到master分支
  20. RCLAMP0544T 国产替代上海雷卯ULC0544T

热门文章

  1. Visual C++ Samples-------------Code Project
  2. Linux Ubuntu搭建git服务器
  3. 面向.Net程序员的Sql版本管理
  4. 运用Mono.Cecil 反射读取.NET程序集元数据
  5. Android开发(22)--seekBar采用handler消息处理操作
  6. 浅谈C#实现Web代理服务器的几大步骤
  7. 中职学校计算机教学参考文献,学生计算机论文,关于中职学校计算机专业教学现状相关参考文献资料-免费论文范文...
  8. mysql集群集成springboot_springboot配置数据库包括集群下 配置
  9. html怎么做成响应式的,怎么用html5完成响应式布局?
  10. sop8封装尺寸图_详解MOS管封装