`
songxiangchao
  • 浏览: 25021 次
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java中自增自减、按位、移位运算符

    博客分类:
  • Java
阅读更多
一  自增与自减运算符遵循以下规律:
1. 可以用于整数类型byte、short、int、long,浮点类型float、double,以及字符串类型char。
2. 在Java5.0及以上版本中,它们可以用于基本类型对应的包装器类Byte、Short、Integer、Long、Float、Double、Character。
3. 它们的运算结果的类型与被运算的变量的类型相同。


二  按位运算符能操作整型值,包括byte、short、int、long,但是不能操作浮点型值(即float和double),它还可以操作字符型(char)值。按位运算符不能够操作对象,但是在Java5.0及以上版本中,byte、short、int、long、char所对应的包装器类是个例外,因为JAVA虚拟机会自动将它们转换为对应的基本类型的数据。


三  移位运算符
移位运算符和按位运算符一样,同属于位运算符,因此移位运算符的位指的也是二进制位。它包括以下
几种:
1. 左移位(<<):将操作符左侧的操作数向左移动操作符右侧指定的位数。移动的规则是在二进制的低位补0。
2. 有符号右移位(>>):将操作符左侧的操作数向右移动操作符右侧指定的位数。移动的规则是,如果被操作数的符号为正,则在二进制的高位补0;如果被操作数的符号为负,则在二进制的高位补1。
3. 无符号右移位(>>>):将操作符左侧的操作数向右移动操作符右侧指定的位数。移动的规则是,无论被操作数的符号是正是负,都在二进制位的高位补0。

关于有符号右移位和无符号右移位,这里有个例子:
System.out.println(-1 >> 1 );
结果为:-1
System.out.println(-1 >>> 1);
结果为:2147483647,即Integer.MAX_VALUE
注意:负数在计算机中用补码表示。

注意,移位运算符不存在“无符号左移位(<<<)”一说。与按位运算符一样,移位运算符可以用于byte、short、int、long等整数类型,和字符串类型char,但是不能用于浮点数类型float、double;当然,在Java5.0及以上版本中,移位运算符还可用于byte、short、int、long、char对应的包装器类。


请用最有效率的方法计算出2乘以8等于几?
这里所谓的最有效率,实际上就是通过最少、最简单的运算得出想要的结果,而移位是计算机中相当基础的运算了,用它来实现准没错了。左移位“<<”把被操作数每向左移动一位,效果等同于将被操作数乘以2,而2*8=(2*2*2*2),就是把2向左移位3次。因此最有效率的计算2乘以8的方法就是“2<<3”。


移位运算的另外一些规则:
1. byte、short、char在做移位运算之前,会被自动转换为int类型,然后再进行运算。
2. byte、short、int、char类型的数据经过移位运算后结果都为int型。
3. long经过移位运算后结果为long型。
4. 在左移位(<<)运算时,如果要移位的位数大于被操作数对应数据类型所能表示的最大位数,那么先将要求移位数对该类型所能表示的最大位数求余后,再将被操作数移位所得余数对应的数值,效果不变。比如1<<35=1<<(35%32)=1<<3=8。
5. 对于有符号右移位(>>)运算和无符号右移位(>>>)运算,当要移位的位数大于被操作数对应数据类型所能表示的最大位数时,那么先将要求移位数对该类型所能表示的最大位数求余
后,再将被操作数移位所得余数对应的数值,效果不变。
比如100>>35=100>>(35%32)=100>>3=12。
分享到:
评论

相关推荐

    java 移位运算符的资源

    java 移位运算符 java 移位运算符 java 移位运算符

    Java中的进制与移位运算符

    Java中的进制与移位运算符 Java中的进制与移位运算符

    C语言中位移位运算符[借鉴].pdf

    C语言中位移位运算符[借鉴].pdf

    Java移位运算符1

    java中有三种移位运算符 : 左移运算符,num ,相当于num乘以2&gt;&gt; : 右移运算符,num &gt;&gt; 1,

    GUI巧用移位运算符获取汉字编码值(C#).rar

    一个使用C#实现的小案例,通过使用移位运算符来获取汉字的GB2312编码值(附blog原文:https://blog.csdn.net/qq_38768365/article/details/99410757)

    移位运算符

    移位运算符

    Java三种移位运算符原理解析

    主要介绍了Java三种移位运算符原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java移位运算符详解实例(小结)

    主要介绍了Java移位运算符详解实例(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    java中的移位运算符心得总结

    介绍了java中的移位运算符,有需要的朋友可以参考一下

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

    下面小编就为大家带来一篇java中关于移位运算符的demo与总结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Java运算符介绍.pptx.pptx

    Java运算符主要分为四类:算术运算符、关系运算符、逻辑运算符和位运算符,这些运算符用于实现不同的数学和逻辑功能。 算术运算符介绍 算术运算符包括加、减、乘、除和取余等基本运算,它们可以对整数、浮点数和字节...

    深入理解C++移位运算符

    下面小编就为大家带来一篇深入理解C++移位运算符。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    JAVA基础之java的移位运算

    因为Java 使用2的补码来存储负数,并且因为Java 中的所有整数都是有符号的,这样应用位运算符可以容易地达到意想不到的结果。例如,不管你如何打算,Java 用高位来代表负数。为避免这个讨厌的意外,请记住不管高位的...

    Java2入门经典.rar

    自增和自减运算符 短整型数计算 整数算术运算中的错误 浮点运算 混合数据类型的算术运算表达式 显式类型强制转换 赋值语句中的自动类型转换 op=运算符 数学函数和常量 字符的存储 字符转义序列 字符的算术运算 按位...

    java2入门经典.part01

    自增和自减运算符 短整型数计算 整数算术运算中的错误 浮点运算 混合数据类型的算术运算表达式 显式类型强制转换 赋值语句中的自动类型转换 op=运算符 数学函数和常量 字符的存储 字符转义序列 字符的算术运算 按位...

    位运算符总结

    位运算符:位指的是二进制位 移位运算符:属于位运算符,位指的是二进制位 包含详细说明及示例

    C++位运算符详解(异或运算符和移位运算符)

    下面小编就为大家带来一篇C++位运算符详解(异或运算符和移位运算符)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    2023最新整理版-java基础面试提

    11. 自增自减运算符 12 12. 移位运算符 12 13. continue、break 和 return 的区别是什么? 13 14. 成员变量与局部变量的区别? 15 13. 静态变量有什么作用? 15 14. 字符型常量和字符串常量的区别? 15 15. 什么是...

    Java中的位运算符、移位运算详细介绍

    主要介绍了Java中的位运算符、移位运算,有需要的朋友可以参考一下

Global site tag (gtag.js) - Google Analytics