JAVA基本语法:使用JAVA进行位运算

位运算:

直接对二进制的补码进行运算。Java除了具备高级语言的特点外,也支持位运算操作。

在计算机中,有符号数有3种表示方法:原码、反码和补码计算机的运算都是采用二进制补码进行的

注:有符号数指二进制的最高位是符号位,其余位置表示数值;无符号数指所有位置表示数值。


原码:二进制定点表示法,即最高位为符号位,0表示正,1表示负,其余位表示数值的大小;

反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外;

补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1

 注:正数的原码、反码、补码都相同。

负数的原码、反码、补码如下:

1000-0000 0000-0000 0000-0000 0000-0011          (-3原码)

1111-1111  1111-1111  1111-1111  1111-1100             (-3反码)

1111-1111  1111-1111  1111-1111  1111-1101             (-3补码)

位运算符:

&:AND(并且) -------------------- 两个都是true 结果才是true : false&true = false

|:OR(或者) ----------------------- 只要有一个是true,那么结果就是true: false|true = true

^:XOR(异或) -------------------- 不同为true, 相同为false:true^true=false

~:逐位取反 ---------------------- 把数字转成二进制的补码后逐位(包括符号位)取反

<<:左移位------------------------ 最高位丢弃,空位补0​​​​​​​

>>:右移位------------------------ 空位补最高位:正数补1,负数补0;

>>>:无符号右移位------------- 不分正负,空位补0

注意事项:&、|、^作为逻辑运算符时前后连接布尔类型的值,对数字做运算时可以看做位运算符,本质上是对数字的二进                    制补码做运算的,此时可以将true看做1,false看做0,优先级顺序为:& > ^ > |;

移位规律:​​​​​​​   (类似于十进制,左移几位就加几个0,即10的几次方)

         左移几位就相当于乘以2的几次方;

         右移几位就相当于除以2的几次方;


相关位运算:

class ConstDemo{
	public static void main(String[] args){
		System.out.println(2|3&5);   //  正确答案:3;如不按优先级顺序计算则得1,错误
		System.out.println(15>>2);   //  3
		System.out.println(15<<2);   //  60	
	}
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值