首页 > 其他分享 >位运算判断二进制第n位是否为1

位运算判断二进制第n位是否为1

时间:2022-10-17 16:36:34浏览次数:49  
标签:10 判断 运算 二进制 是否 number 十进制

判断二进制数据的第n位是否为1可以用&运算来判断
先来看下面的运算

十进制 二进制 位左移
21=2 10 1<<1
22=4 100 1<<2
23=8 1000 1<<3
24=16 10000 1<<4

很难看不出其中一个规律,十进制d的第n为1,其余位为0的十进制计算公式为:d = 1 << (n -1)
比如16为第5位为1,十进制数为 1 << 4
有了上面的基础,我们如果想计算某个十进制的第n位是否为1时,可以进行位与运算;
位与运算:两位都是1时结果为1,否则为0
比如判断10的第3位是否为1,就可以换算成10 & 8
1 0 1 0
1 0 0 0
——————
1 0 0 0
结果为8大于0 表示10的第三位为1

2的第3位是否为1
0 0 1 0
0 1 0 0
——————
0 0 0 0
结果为0 表示2的第三位不是1

/**
	 * 判断十进制数某位是否为1
	 * @param number 需要计算的值
	 * @param index  位数
	 * @return
	 */
	private boolean isBitZero(int number, int index) {
		return (number & (1 << (index - 1))) > 0;
	}

标签:10,判断,运算,二进制,是否,number,十进制
From: https://www.cnblogs.com/LiuFqiang/p/16799645.html

相关文章