我是靠谱客的博主 犹豫魔镜,最近开发中收集的这篇文章主要介绍java 位移负数结果是什么——位移运算原理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java 位移运算其实很简单,但是你不清除细节,就会有一些问题。
比如,如果位移负数会怎么办,如果byte位移而不是int又会怎样。
所以java位移的具体实现就很重要了。
事实上,java为了防止位移时超出数据范围,会对位移运算的位数做一个&运算。
如果是int就会&0b11111,0b11111是二进制数字11111的意思。所以int位移只取后5位,即int位移范围是0-31。

a >>> 32 == a >>> 0
a >>> -1 == a >>> 31

如果是long,则是&0b11111,即只取后6位,所以位移范围是0-63。

byte则和int一样处理,只取后5位,因为一般运算时,byte、short、char都会转为int再计算。
当然,如果被final修饰则会视为常量,虽然也会自动转为int。但是计算会在编译期发生。
如果常量运算结果范围不超过byte、short、char范围,则编译器会自动把运算结果转为左侧的byte、short、char类型,否则需要我们手动强制转换。
还有类似于 >>>= ,+= 这些运算,也会自动强转。

推荐大家看看Think In Java,中文名《java编程思想》。

最后

以上就是犹豫魔镜为你收集整理的java 位移负数结果是什么——位移运算原理的全部内容,希望文章能够帮你解决java 位移负数结果是什么——位移运算原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部