本人学习地址:JAVA自学网站HOW2J

 package operateTest;//import java.util.Scanner;public class OperateTest {public static void main(String[] args) {int a = 123;String b = Integer.toBinaryString(a);System.out.println(a+"的二进制是"+b);String c = Integer.toBinaryString(~a);System.out.println(a+"的二进制取反后为"+(c));// int : 4 byte = 4 * 8 = 32 bitSystem.out.println(a^0);//任何数与0异或的值为它本身System.out.println(a^a);//任何数与自己异或的值为0//异或(^),同位上,异:1,同:0int v = 6;int w = -9;String sv,sw,sv1,sv2,sw1,sw2;sv = Integer.toBinaryString(v);sw = Integer.toBinaryString(w);int v1 = v >> 1;int w1 = w >> 1;sv1 = Integer.toBinaryString(v1);sw1 = Integer.toBinaryString(w1);int v2 = v >>> 1;int w2 = w >>> 1;sv2 = Integer.toBinaryString(v2);sw2 = Integer.toBinaryString(w2);System.out.println(v+"的二进制是"+sv);System.out.println(w+"的二进制是"+sw);System.out.println(v+"带符号右移一位的二进制是"+sv1+",变为"+v1);System.out.println(w+"带符号右移一位的二进制是"+sw1+",变为"+w1);System.out.println(v+"不带符号右移一位的二进制是"+sv2+",变为"+v2);System.out.println(w+"不带符号右移一位的二进制是"+sw2+",变为"+w2);int i = 3; // 二进制是11int j = 2; // 二进制是10int c1= ((i | j) ^ (i & j)) << 2 >>> 1;//3^2 = 1 (01),1<<2 = 2 (100),4>>>1 = 2 (10)System.out.println(c1);}

 >>为带符号右移,>>>为不带符号右移
当带符号右移(>>)时,第一位原来是什么就补什么,负数原来第一位是1,右移后补1,正数原来第一位0,右移补0,
所以带符号右移数字的符号不变;
但是,当不带符号右移(>>>)时,负数移动后,第一位前会补0,负数就会变成一个正数
对于左移,无带不带符号之分,
不管是正数还是负数,移位后最左端都是补0,(没有不带符号左移)

java中的操作符(位操作符>>与>>>的区别)相关推荐

  1. java中的双冒号操作符

    java :: Java中的双冒号操作符 </h1><div class="clear"></div><div class="p ...

  2. java中常用的位运算符及其应用

    1.位运算就是直接对整数在内存中的二进制位进行操作,针对与int类型进行操作 Java中常用的位运算符有以下7种:     &      |        ^   ~   <<   ...

  3. java 千位分隔符_如何在Java中设置千位分隔符?

    问题 如何在Java中设置千位分隔符?我有BigDecimal的String表示,我想设置千位分隔符并返回String. #1 热门回答(180 赞) 你可以使用格式功能","; ...

  4. Java中print、printf、println的区别 详解

    Java中print.printf.println的区别详解 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和pr ...

  5. java printf与println_浅析Java中print、printf、println的区别

    我们的程序员在开发的时候,都会使用到很多不同的功能,但是有些功能是大同小异,别着急,下文是爱站技术频道小编为大家带来的浅析Java中print.printf.println的区别,希望对你学习有帮助! ...

  6. java中printf,print,println,区别及用法详解

    此题是蓝桥杯的一道竞赛试题,在编写程序时,遇到了printf的用法,不是很熟悉,特此总结一下. 以下是对Java中print.printf.println的区别进行了详细的分析介绍,需要的朋友可以过来 ...

  7. java中String new和直接赋值的区别

        Java中String new和直接赋值的区别     对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才 ...

  8. 【Java学习笔记之二十九】Java中的equals和==的用法及区别

    Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String(&quo ...

  9. Java中方法重载和方法重写的区别

    文章目录 1 Java中方法重载和方法重写的区别 1 Java中方法重载和方法重写的区别 主要区别如下: 方法重载: 在同一个类中 方法名相同 参数个数.顺序.类型不同 返回值类型.访问修饰符任意 方 ...

  10. Java中的LongAdder和AtomicLong有什么区别?

    ● Java中的LongAdder和AtomicLong有什么区别? 考点:JDK 参考回答: JDK1.8引入了LongAdder类.CAS机制就是,在一个死循环内,不断尝试修改目标值,直到修改成功 ...

最新文章

  1. 笔记-项目沟通管理-沟通管理计划
  2. qt插件元数据不包含一个有效的元数据_Qt5个人软件插件使用(低级API)
  3. error: object MultivariateNormalDistribution is not a member of package
  4. 一周学好python_耗时一周整理的Python资料,包含各阶段所需网站、项目,收藏了?慢慢来...
  5. 第67课 选择排序 改进例67.1 《小学生C++编程入门》
  6. Android Studio eclipse 调试技巧
  7. 强化学习算法在京东广告序列推荐场景的应用实践
  8. 求一个数的二进制逆序之后所对应的数
  9. Apache 优化配置10条建议
  10. argparse模块
  11. Vensim建模--基于系统动力学的私人小汽车出行特征建模分析
  12. Solaris系统环境变量声明方法
  13. 德清租房软件测试,门头沟实习生出租房
  14. excel宏实现工作表索引,点击按钮隐藏/显示对应工作表
  15. 一体机(广告投放机)开发
  16. GIT:cherry-pick挑拣提交
  17. [转]C#中的global关键字(global::)
  18. 博通的网卡linux驱动,CentosRedhat下bcm43142博通无线网卡linux驱动
  19. as3学习笔记1:Embed嵌入图片
  20. jQuery教程(整理自W3CSchool)(第一部分)

热门文章

  1. hadoop(一) 基本介绍
  2. Springboot线程池的使用和扩展
  3. springcloud 中的zuul整合Elasticsearch报错availableProcessors is already set to [4], rejecting [4]...
  4. 学霸大佬整理,超全 Python 学习路线图(附工具+视频+书籍+面试)
  5. 应用计算机基础1答案,2017年计算机应用基础习题及答案
  6. 茄子快传 java,GitHub - wuyxhero/KuaiChuan: 仿茄子快传的一款文件传输应用
  7. 计算机英语基础课程论文,计算机专业英语课程教学论文
  8. vue - blog开发学习4
  9. Go interface 操作示例
  10. Flask之threading.loacl方法