使用位操作符,对变量a(10)进行某一位置0或置1操作。
//n 是将原数二进制从左往右第n个数字进行变化。从0开始数
package com.briup.day06;
public class Test08_Practice {
public static void main(String[] args) {
System.out.println(setBit1(10, 4));
System.out.println(setBit0(10, 3));
}
/*
使用位操作符,对变量a进行某一位置0或置1操作。
10 => 0000 1010
给从右往左第4位置为1 => 0001 1010
&:
a & 0 = 0
a & 1 = a
|:
a | 0 = a
a | 1 = 1
0000 1010
| 0001 0000 = 1 << n //n 是将原数二进制从左往右第n个数字进行变化。从0开始数
0001 1010
1 0000 0001
0000 1010
& 1111 0111 => ~0000 1000 = ~ (1 << n)
0000 0010
*/
public static int setBit1(int value, int n) {
return value | (1 << n);
}
public static int setBit0(int value, int n) {
return value & ~ (1 << n);
}
}