关于java的移位运算符

博客介绍了Java位运算相关知识,强调位运算只作用于int类型,其他类型需先转化。详细说明了右移(>>)、左移(<<)和无符号右移(>>>)的规则,如右移消去最低位,左移补0,无符号右移以32位为周期循环等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:位运算只作用在int类型上面,其他类型得先转化成int

我们用这段代码做测试:

public class Test {
	public static void main(String[] args) {
        int number = 10;
       System.out.println("输入的原始数字"+number);
       //原始数二进制
       printInfo(number);
        number = number >> 1;
        //>>右移动x位 <<左移动x位
        System.out.println("移位后的数字为"+Integer.parseInt(""+number,10));
        printInfo(number);
    }
    
    /**
     * 输出一个int的二进制数
     * @param num
     */
    private static void printInfo(int num){
        System.out.println("该数字的二进制数为:"+Integer.toBinaryString(num));
    }
}
1.>> 向右移位后面有多少个数字就移动几位,最低位就被消去几位

在这里插入图片描述

超过本身的位数的话就会变成0

在这里插入图片描述

在这里插入图片描述

2.<< 向左移位后面有多少个数字就移动几位,后面就补几个‘0’

在这里插入图片描述
在这里插入图片描述

3.>>> 是无符号右移
  • 当原始数字是正数的时候 效果跟>>一样
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 当原始数字是负数的时候,显示的是一个32位的二进制数,效果跟>>是一样的,不过当超过移动32位后,他会重新变回原来的负数,也就是说他是以32位数一个周期循环的。
    在这里插入图片描述
    在这里插入图片描述

当移动32位后

在这里插入图片描述
在这里插入图片描述

当移动33位后

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值