`

Java的移位操作符

阅读更多
Java的移位操作符一共有三种,
分别是
1.>>:有符号右移,有符号右移的意思是说移入的最高位和原最高符号位相同
2.>>>:无符号右移,无符号右移是移入位始终补零,左移时最低位始终补零,最高位被舍弃
3.<<:左移,有符号左移的意思是说移入的最高位和原最高符号位相同
例如
  int a = 100 转化为二进制为 0110 0100 
  : 0110 0100 >> 2 ----- 0001 1001 转化为十进制为 25
   int a = 100;
       System.out.println(a >> 2);

       输出结果:25
        
  : 1100 1100 0000 1010 >> 2 ----- 1111 0011 0000 0010
  :1100 1100 0000 1010 >>>2 ----- 0011 0011 0000 0010

移位操作符另一个非常值得注意的特点是其右操作数是取模运算的,意思是说对于一个int型数据而言,对它移位32位的结果是保持不变而非变成零,即:a>>32的结果是a而不是0,同理,对long型数是对右操作数取64的模,a>>64==a;
        int a = 100;
        
        System.out.println(a >> 32);
      
        输出结果 100。

还有一点需要注意的是移位操作符”>>>”只对int型和long型有效,对byte或者short的操作将导致自动类型转换,而且是带符号的。
分享到:
评论

相关推荐

    java 移位操作符的使用

    Java中的移位操作符用于对二进制数进行左移()、右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)操作。 左移()操作符:将一个数的所有位向左移动指定的位数,右侧空出的位用0填充。 右移(&gt;&gt;)操作符:将一个数的所有位向右移动...

    Thinking in java4(中文高清版)-java的'圣经'

    3.5.1 一元加、减操作符 3.6 自动递增和递减 3.7 关系操作符 3.7.1 测试对象的等价性 3.8 逻辑操作符 3.8.1 短路 3.9 直接常量 3.9.1 指数记数法 3.10 按位操作符 3.11 移位操作符 3.12 三元操作符 if-else 3.13 ...

    详解Java的位操作符

    位操作就是对这些数据进行基本的操作。如果基本类型是char、byte或者short类型的数值进行移位处理,那么会转化成int类型,再进行移位的处理

    编程思想下篇

    3.11 移位操作符 3.12 三元操作符 if-else 3.13 字符串操作符 + 和 += 3.14 使用操作符时常犯的错误 3.15 类型转换操作符 3.15.1 截尾和舍入 3.15.2提升 3.16 Java没有“sizeof” 3.17 操作符小结 3.18 总结 第4章 ...

    java基础案例与开发详解案例源码全

    3.4.2 赋值操作符45 3.4.3 关系操作符47 3.4.4 逻辑操作符48 3.4.5 位操作符49 3.4.6 移位运算符49 3.4.7 其他操作符50 3.5 表达式52 3.5.1 表达式简介52 3.5.2 表达式的类型和值52 3.5.3 表达式的运算顺序52 3.5.4 ...

    java学习总结 1.《Java核心技术》.rar

    3、移位操作符右边的参数要先进行模32运算(当左边的变元是long型,则模64),如1。浮点运算的中间结果程度是不一致的。有些处理器适用80bit浮点存储器,有些则使用64bit、80bit。直到最后才把结果截断为64bit,这样做...

    JavaScript中文参考手册

    移位操作符 逻辑操作符 简化运算 字符串操作符 特殊操作符 ?: (条件操作符) , (逗号操作符) delete new this typeof void 第三章 语句 这一章描述了所有 JavaScript 的语句。JavaScript 语句是用特定的...

    java 编程入门思考

    5.2 Java访问指示符 5.2.1 “友好的” 5.2.2 public:接口访问 5.2.3 private:不能接触 5.2.4 protected:“友好的一种” 5.3 接口与实现 5.4 类访问 5.5 总结 5.6 练习 第6章 类再生 6.1 合成的语法 6.2 继承的...

    Java初学者入门教学

    5.2 Java访问指示符 5.2.1 “友好的” 5.2.2 public:接口访问 5.2.3 private:不能接触 5.2.4 protected:“友好的一种” 5.3 接口与实现 5.4 类访问 5.5 总结 5.6 练习 第6章 类再生 6.1 合成的语法 6.2 继承的...

    java联想(中文)

    5.2 Java访问指示符 5.2.1 “友好的” 5.2.2 public:接口访问 5.2.3 private:不能接触 5.2.4 protected:“友好的一种” 5.3 接口与实现 5.4 类访问 5.5 总结 5.6 练习 第6章 类再生 6.1 合成的语法 6.2 继承的...

    C语言解析教程(原书第4版)(美) 凯利.pdf

    7.1.4 左移位和右移位操作符 7.2 掩码 7.3 软件工具:打印int值的二进制形式 7.4 包装和解包 7.5 枚举类型 7.6 例子:“石头、剪刀、布”游戏 7.7 总结 7.8 练习 第8章 预处理器 8.1 #include的使用 8.2 使用#define...

    JavaScript语言参考手册

    移位操作符 逻辑操作符 简化运算 字符串操作符 特殊操作符 ?: (条件操作符) , (逗号操作符) delete new this typeof void 第三章 语句 这一章描述了所有 JavaScript 的语句。JavaScript 语句是用特定的语法由...

    JAVA_Thinking in Java

    5.2 Java访问指示符 5.2.1 “友好的” 5.2.2 public:接口访问 5.2.3 private:不能接触 5.2.4 protected:“友好的一种” 5.3 接口与实现 5.4 类访问 5.5 总结 5.6 练习 第6章 类再生 6.1 合成的语法 6.2 继承的...

    Thinking in Java简体中文(全)

    5.2 Java访问指示符 5.2.1 “友好的” 5.2.2 public:接口访问 5.2.3 private:不能接触 5.2.4 protected:“友好的一种” 5.3 接口与实现 5.4 类访问 5.5 总结 5.6 练习 第6章 类再生 6.1 合成的语法 6.2 继承的...

    Thinking in Java 中文第四版+习题答案

    5.2 Java访问指示符 5.2.1 “友好的” 5.2.2 public:接口访问 5.2.3 private:不能接触 5.2.4 protected:“友好的一种” 5.3 接口与实现 5.4 类访问 5.5 总结 5.6 练习 第6章 类再生 6.1 合成的语法 6.2 继承的...

    Thinking in java(中文)

    控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 ...

    java范例开发大全源代码

     实例13 Java中的进制与移位运算符 22  第3章 条件控制语句(教学视频:75分钟) 26  3.1 if控制语句 26  实例14 判断输入的年份是否为闰年 26  实例15 抽奖活动 27  3.2 for语句 28  实例16 ...

    java范例开发大全

    实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...

    Java范例开发大全 (源程序)

     实例13 Java中的进制与移位运算符 22  第3章 条件控制语句(教学视频:75分钟) 26  3.1 if控制语句 26  实例14 判断输入的年份是否为闰年 26  实例15 抽奖活动 27  3.2 for语句 28  实例16 小九九...

    Java二进制操作(动力节点Java学院整理)

    给大家介绍了java二进制操作技巧,包括移位、位运算操作符等相关知识点,非常不错,感兴趣的朋友参考下吧

Global site tag (gtag.js) - Google Analytics