java 移位运算规则
来源:互联网 发布:大数据属于什么行业 编辑:程序博客网 时间:2024/05/01 13:02
int value = Integer.parseInt("00001111101001011111000010101100",2);//即value=262533292
参数: s - 包含要分析的整数表示形式的 String ,radix - 分析 s 时使用的基数。
返回: 使用指定基数的字符串参数表示的整数。例如:parseInt("473", 10) 返回 473 ;parseInt("1100110", 2) 返回 102
抛出: NumberFormatException - 如果 String 不包含可分析的 int。
1、对int变量value执行<<32位操作,即value <<=32。结果还是262533292。
在java中无论左移右移,会遵循下面的规则:
对于int类型的:
value<<n(其中value为int,n>=0) 等价于 value<<>(n%32)
value>>n (其中value为int,n>=0) 等价于 value>>(n%32)
value>>>n (其中value为int,n>=0) 等价于 value>>>(n%32)
对于long类型的:
value<<n(其中value为long,n>=0) 等价于 value<<(n%64)
value>>n (其中value为long,n>=0) 等价于 value>>(n%64)
value>>>n (其中value为long,n>=0) 等价于 value>>>(n%64) 。
对于byte、short、char遵循int的规则。
2、对int变量value执行<<-38位操作,即value <<=-38,结果为-1342177280。若是对int的值移负数位,java会截取那个负数的低5位。 -38的二进制表示是:11111111111111111111111111011010,截取低5位得:11010,这个数是26,也就是说: value <<= -38 等价于 value <<= 26,得到的二进制是10110000000000000000000000000000,首位为1, 所以该二进制是补码,换成其绝对值的源码为01010000000000000000000000000000,对应的十进制为1342177280, 加上负号就是-1342177280。
负值
对于int是取低5位,对于long是取低6位。
对于int类型的:
value << -n(value为int,n>=0) 等价于 value << (-n & 31)
value >> -n(value为int,n>=0) 等价于 value >> (-n & 31)
value >>> -n(value为int,n>=0) 等价于 value >>> (-n & 31)
对于long类型的:
value << -n(value为long,n>=0) 等价于 value << (-n & 63)
value >> -n(value为long,n>=0) 等价于 value >> (-n & 63)
value >>> -n(value为long,n>=0) 等价于 value >>> (-n & 63) 。
对于byte、short、char遵循int的规则。
- java 移位运算规则
- 【java解惑】移位运算符规则
- Java中移位操作符的运算规则
- java 移位运算符,取反运算符 >> << >>> ~ , java 负数补码存放规则等同于机器存储
- java 移位运算
- JAVA移位运算符
- JAVA移位运算符
- java 移位运算
- 移位运算(Java)
- java 移位运算符
- JAVA移位运算符
- JAVA移位运算符
- JAVA 移位运算
- JAVA移位运算符
- JAVA移位运算符
- java的移位运算
- JAVA移位运算符
- java移位运算符
- 选择器(Selectors)
- 一直在考虑编一个网站通用的模板
- Using the Flex Compilers Flex编译器的使用 第四部分
- onbeforeunload与a标签在IE中的冲突bug
- 附加数据库失败,操作系统错误 5:"5(拒绝访问。)"的解决办法
- java 移位运算规则
- 操作xml文件类
- 10+20=1020
- Android虚拟机无法正常工作几例及解决办法
- 10+20=30
- 怎样控制wordpress博客首页博文显示内容字数!
- LINUX系统中鼠标中键的妙用
- 腾讯通RTX 客户端发送即时消息 小结(C#,VB6版)
- 使用SharpZip进行文件压缩