java - 位运算举例

位运算规则

运算符号 运算符 含义 举例
& 如果对应位都是1,则结果为1,否则为0
0&0=0
0&1=0
1&0=0
1&1=1
| 对应位只要有一个为1,那么结果就是1,否则为0
0|0=0
0|1=1
1|0=1
1|1=1
~ 如果位为0,结果是1;如果位为1,结果是0
~0=1
~1=0
^ 异或 如果对应位相同,则结果为0,否则为1
0^0=0
0^1=1
1^0=1
1^1=0
<< 左移 左操作数按位左移右操作数指定的位数
0<<1=0
1<<1=2
>> 右移 左操作数按位右移右操作数指定的位数
0>>1=0
1>>1=0

位运算举例

1、2的倍乘或倍除

int int128 = 128;
int int156 = int128 << 2;
int int32 = int128 >> 2;

2、数值交换

b = a^b;
a = a^b;
b = a^b;

3、IP形式转换

public static int ipv4String2Int(String ipv4) {
    String[] ips = ipv4.split("\\.");
    int ip1 = Integer.parseInt(ips[0]) << 24;
    int ip2 = Integer.parseInt(ips[1]) << 16;
    int ip3 = Integer.parseInt(ips[2]) << 8;
    int ip4 = Integer.parseInt(ips[3]);
    return ip1 | ip2 | ip3 | ip4;
}
public static String ipv4Int2String(int ipv4) {
    int ip1 = ipv4 >>> 24;
    int ip2 = ipv4 << 8 >>> 24;
    int ip3 = ipv4 << 16 >>> 24;
    int ip4 = ipv4 << 24 >>> 24;
    return ip1 + "." + ip2 + "." + ip3 + "." + ip4;
}

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...