😁《甜橙橙课堂》之Java位运算符

414 阅读2分钟
# 一、位运算符的含义 Java定义的位运算直接对整个类型的位进行操作,这些整数类型包括long、int、short、char、和byte。
位运算及结果
运算符 作用
~ 按位非(NOT)一元运算
& 按位与(AND)
| 按位或(OR)
^ 按位异或(XOR)
>> 右移
>>> 右移,左边空出的位以0填充
<< 左移
&= 按位与赋值
|= 按位或赋值
^= 按位异或赋值
>>= 右移赋值
>>>= 右移赋值,左边空出的位以0填充
<<= 左移赋值
  既然位运算符在整数范围内对位操作,因此必须理解两点:Java是如何储存数值、如何表示负数的。

二、位逻辑运算符

1、介绍位逻辑运算符介绍

&emspl;&emspl;位逻辑运算符有"与(AND)"、"或(OR)"、"异或(XOR)"、"非(NOT)",分别用"&"、"|"、"^"、"~"表示。位运算符应用于每个运算数内的每个单独的位。

位逻辑运算符结果
A B A|B A&B A^B ~A
0 0 0 0 0 1
1 0 1 0 1 0
0 1 1 0 1 1
1 1 1 1 0 0

五、反码、补码和原码

1、原码

  所有的整数类型以而进驻数位来表示。例如,byte型值42的二进制代码是00101010,其中每个位置代表2次方,在最右边的位以20开始,向左下一个位置是21或2,然后是23,24,25等,以此类推。42的二进制代码中位置1、3、5的值为1(从右边以0开始数),这样42是21+23+25的和,也既2+8+32=42。

2、反码

  正数的反码是它本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反,(既将1变成0,将0变成1)。
  [+1] = [00000001] = [00000001]
  [-1] = [10000001] = [11111110]

3、补码

  补码的表示方法是:正数的补码就是其本身,负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
  [+1] = [00000001] = [00000001] = [00000001]
  [-1] = [10000001] = [11111110] = [11111111]

求点赞👍 求关注❤️ 求分享👥