Java 位运算

本文深入探讨了位运算的基本概念,包括左移、右移运算符的使用及其原理,以及与、或、异或等位运算符的具体应用。同时介绍了原码、反码和补码的概念,并通过实例展示了它们在计算机数据表示中的作用。

位移动运算符:

<<表示左移, 左移一位表示原来的值乘2.

例如:3 <<2(3为int型) 
1)把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011, 
2)把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位, 
3)在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100, 
转换为十进制是12。

同理,>>表示右移. 右移一位表示除2.

位运算:

位运算符包括: 与(&)、非(~)、或(|)、异或(^)

  &:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000   

      | :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110   

      ~:0变1,1变0 ,是一元运算符,符合单个变量运算。~100=011 (二进制)

      ^:两边的位不同时,结果为1,否则为0。如1100^1010=0110。口诀(真^假=真,假^真=真,假^假=假,真^真=假)。

具体的案例应用可以参考:位运算案例


原码:符号位用0表示正号,用1表示负号,数值一般用二进制形式表示 

反码:机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。 

补码:机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。 

正数:原码=反码=补码,并用原码表示; 
负数:反码=~原码(除符号位)、补码=反码+1,用补码表示;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值