17_移位运算符(了解)

17_移位运算符

移位运算符(了解

  • 移动二进制位的运算符

  • << 左移运算符,用于将数据的二进制位向左移动,右边使用0补充

  • />> 右移运算符,用于将数据的二进制位向右移动,左边使用==符号位(负数1,正数0)==补充

  • />>> 表示逻辑右移运算符(无符号右移运算符),用于将数据的二进制位向右移动,左边使用0补充。不需要逻辑左移运算符,因为逻辑右移运算符是用来处理符号位问题的

    /*
    	编程实现移位运算符的使用
     */
     public class MoveBitTest {
    	 
    	 public static void main(String[] args) {
    		 
    		 // 1、声明一个byte类型的变量并初始化
    		 byte b1 = 13;
    		 // 2、打印变量的数值
    		 System.out.println("b1 = " + b1); // b1 = 13
    		 
    		 System.out.println("---------------------------");
    		 // 3、移位运算符的使用----------->Java官方的底层源码可能用到了移位运算符,但是我们自己编码的时候一般不会用到它
    		 // 13的二进制是: 0000 1101 => 左移1位 => 0001 1010 => 换算为十进制整数是: 26
    		 // byte b2 = b1 << 1; // 错误: 不兼容的类型: 从int转换到byte可能会有损失  
    		 // 移位运算符也和复合赋值运算符一样,会自动提升为int类型,也就是32位二进制,但是此处还是使用八位二进制位来运算
    		 byte b2 = (byte)(b1 << 1);
    		 System.out.println("b2 = " + b2); // 26
    		 System.out.println(b1 << 1); // 26		左移1位相当于当前整数的数值*2
    		 System.out.println(b1 << 2); // 52		左移2位相当于当前整数的数值*4
    		 
    		 
    		 System.out.println("---------------------------");
    		 // 13 的二进制是:	0000 1101 => 右移一位 => 0000 0110 => 换算为十进制整数是:	6
    		 System.out.println(b1 >> 1); // 6		右移1位相当于当前整数的数值/2
    		 System.out.println(b1 >> 2); // 3		右移2位相当于当前整数的数值/4
    		 
    		 System.out.println("---------------------------");
    		 // 逻辑右移	对于非负数来说,逻辑右移和右移的效果一致
    		 System.out.println(b1 >>> 2); // 3	
    	 }
     }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值