首页 > 编程语言 > 详细

Java查找int中第一个为1的bit位置

时间:2020-06-19 14:31:21      阅读:146      评论:0      收藏:0      [点我收藏+]
public class BinarySearch {
	// find first bit which is 1 from left to right
	public static int search(int d) {
		int r = 0;
		if ((d & 0xffff0000) != 0) {
			d >>>= 16;
			r += 16;
		}
		if ((d & 0xff00) != 0) {
			d >>>= 8;
			r += 8;
		}
		if ((d & 0xf0) != 0) {
			d >>>= 4;
			r += 4;
		}
		if ((d & 0x0c) != 0) {
			d >>>= 2;
			r += 2;
		}
		if ((d & 0x02) != 0) {
			d >>>= 1;
			r += 1;
		}
		if ((d & 0x01) != 0) {
			r += 1;
		}
		return r;
	}

	// find first bit which is 1 from right to left
	public static int searchReserve(int d) {
		int r = 0;
		if ((d & 0xFFFF) == 0) {
			d >>= 16;
			r += 16;
		}
		if ((d & 0xFF) == 0) {
			d >>= 8;
			r += 8;
		}
		if ((d & 0x0F) == 0) {
			d >>= 4;
			r += 4;
		}
		if ((d & 0x03) == 0) {
			d >>= 2;
			r += 2;
		}
		if ((d & 0x01) == 0) {
			r += 1;
		}
		return r;
	}
}

  

Java查找int中第一个为1的bit位置

原文:https://www.cnblogs.com/areful/p/13162775.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!