java中的操作符(位操作符>>与>>>的区别)

本文深入探讨Java中的位运算,包括二进制表示、位运算符的使用,如按位与、按位或、异或、取反及移位操作。通过实例演示了不同运算符的功能及其对整数的影响,适合初学者理解和掌握。

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

本人学习地址:JAVA自学网站HOW2J

 package operateTest;
        
    //import java.util.Scanner;
    public class OperateTest {
    	public static void main(String[] args) {
    		
    		int a = 123;
    		String b = Integer.toBinaryString(a);
    		System.out.println(a+"的二进制是"+b);
    		String c = Integer.toBinaryString(~a);
    		System.out.println(a+"的二进制取反后为"+(c));// int : 4 byte = 4 * 8 = 32 bit
    		System.out.println(a^0);//任何数与0异或的值为它本身
    		System.out.println(a^a);//任何数与自己异或的值为0
    		//异或(^),同位上,异:1,同:0
    		int v = 6;
    		int w = -9;
    		String sv,sw,sv1,sv2,sw1,sw2;
    		sv = Integer.toBinaryString(v);
    		sw = Integer.toBinaryString(w);
    		int v1 = v >> 1;
    		int w1 = w >> 1;
    		sv1 = Integer.toBinaryString(v1);
    		sw1 = Integer.toBinaryString(w1);
    		int v2 = v >>> 1;
    		int w2 = w >>> 1;
    		sv2 = Integer.toBinaryString(v2);
    		sw2 = Integer.toBinaryString(w2);
    		System.out.println(v+"的二进制是"+sv);
    		System.out.println(w+"的二进制是"+sw);
    		System.out.println(v+"带符号右移一位的二进制是"+sv1+",变为"+v1);
    		System.out.println(w+"带符号右移一位的二进制是"+sw1+",变为"+w1);
    		System.out.println(v+"不带符号右移一位的二进制是"+sv2+",变为"+v2);
    		System.out.println(w+"不带符号右移一位的二进制是"+sw2+",变为"+w2);
    		
    		int i = 3; // 二进制是11
    		int j = 2; // 二进制是10
    		int c1= ((i | j) ^ (i & j)) << 2 >>> 1;
    		//3^2 = 1 (01),1<<2 = 2 (100),4>>>1 = 2 (10)
    		System.out.println(c1);
    	}

在这里插入图片描述

在这里插入图片描述

 >>为带符号右移,>>>为不带符号右移
当带符号右移(>>)时,第一位原来是什么就补什么,
 负数原来第一位是1,右移后补1,
 正数原来第一位0,右移补0,
所以带符号右移数字的符号不变;
但是,当不带符号右移(>>>)时,负数移动后,第一位前会补0,
 负数就会变成一个正数
对于左移,无带不带符号之分,
不管是正数还是负数,移位后最左端都是补0,(没有不带符号左移)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Enco-Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值