Java位运算

Java常用的位运算:

带符号右移 >>

对于正数, 带符号右移 >> 会把所有的位右移,并在最前面补0
对于负数, 带符号右移 >> 会把所有的位右移,并在最前面补1
比如 int i= 5; int类型在Java中是4个字节,也就是32位。
他的二进制表示是 :
0000 0000 0000 0000 0000 0000 0000 0101
右移i>>2,对于正数:
0000 0000 0000 0000 0000 0000 0000 0001

带符号左移

对于正数, 带符号右移 >> 会把所有的位右移,并在最前面补0
对于负数, 带符号右移 >> 会把所有的位右移,并在最前面补1

无符号右移>>>

如果是一个负数,那么对应的二进制的第一位是1
无符号右移>>>会把第一位的1也向右移动,导致移动后,第一位变成0
这样就会使得负数在无符号右移后,得到一个正数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据在计算机中都是以补码形式存放的,位运算也是以一个数的补码进行运算,结果也自然也是一个补码,这点在分析计算过程时...
    SharpChen阅读 722评论 0 4
  • 概述 在学习位运算之前,先说下几个概念: 机器数:一个数字在计算机中的二进制表达形式就叫做机器数。机器数是有符号位...
    骑着乌龟去看海阅读 2,462评论 1 4
  • 本文主要介绍 Java 提供的位运算符:左移( << )、右移( >> ) 、无符号右移( >>> ) 、位与( ...
    christian_zs阅读 375评论 0 2
  • Java中的位运算符有如下几类 左移 << 又移 >> 无符号右移 >>> 位与 & 位或 | 位非 ~ 位异或 ...
    Elf_乐易阅读 1,207评论 0 0
  • 全篇的精华在于:** x<<y 相当于 x*2y;x>>y相当于x/2y **。哈哈,如果想继续了解就往下阅读吧希...
    2ivy阅读 1,044评论 0 6