【JAVA】请问位运算符在实际中具体到底有哪些实际用处 20

请高手完整详细说明下... 请高手完整详细说明下 展开
 我来答
百度网友fe660d0
2015-03-11 · TA获得超过142个赞
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:91万
展开全部

位操作是程序设计中对位模式按位或二进制数的一元和二元操作。 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算).

 

  • 位运算符用来对二进制位进行操作,Java中提供了如下表所示的位运算符:位运算符中,除 ~ 以外,其余均为二元运算符。

操作数只能为整型和字符型数据。

3.4.1补码

Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。补码的规定如下:

对正数来说,最高位为0,其余各位代表数值本身(以二进制表示),如+42的补码为00101010。

对负数而言,把该数绝对值的补码按位取反,然后对整个数加1,即得该数的补码。如-42的补码为11010110(00101010按位取反11010101+1=11010110)

用补码来表示数,0的补码是唯一的,都为00000000。(而在原码,反码表示中,+0和-0的表示是不唯一的,可参见相应的书籍)。而且可以用111111表示-1的补码(这也是补码与原码和反码的区别)。

3.4.2按位取反运算符~

~   是一元运算法,对数据的每个二进制位取反,即把1变为0,把0变为1。

例如:

0010101

1101010

注意,~运算符与-运算符不同,~21≠-21。

3.4.3按位与运算符&

参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。即:

0&0=0,0&1=0,1&0=0,1&1=1

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式