Java位运算

2021/4/25 14:25:11

本文主要是介绍Java位运算,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、原码、反码、补码之间的转换

计算机存储都是按补码进行存储的,正数的补码和原码一样,对负数进行位运算的时候要先算出它的补码。

1.1正数的原码、反码、补码都是相同的。

 

1.2 负数的反码:最高位符号位不变,其他位置取反

  负数的补码:反码加1就得到补码

  

 

2.位运算

&:按位与

0&1 = 0

0&0 =  0

1&1 = 1

例子: 5 & 9 = 1

  

 

 

 

| :按位或 

0 | 0 = 0

1 | 0 = 1

1 | 1 = 1

 

例子:5 ^ 9 = 12

 

 

~ :按位非

按位非首先获取补码,对齐位置全部取反包括符号位

如果原来的数是正数,得到补码后是负数,负数要先减1得到反码,反码再除符号位其余全部取反得到负数的最终的原码

如果原来的数是负数,得到补码后直接就是最后的正数。不用再求反码

 

 

 

 

左移运算:前面溢出的直接去除,后面空出来的补零!

 

正数直接左移:

负数先算出补码再左移,左移运算完了后,再减1,除符号位外其他位进行取反!

 

 

 >> 右移运算:后面溢出的直接去除,前面空出来的补符号位,正数补0,负数补1.

 

 

>>> 无符号右移  :后面溢出的直接去除,前面空出来的直接补0,正数负数都补0,所以无符号右移后的结果都是正数。

 

 

参考文献:https://blog.csdn.net/xiaoxiaole0313/article/details/103707926

 



这篇关于Java位运算的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程