note 102403 added to language.operators.bitwise

[email protected] Fri, 11 Feb 2011 19:54:41 -0800
Newsgroups php.notes
Message-ID <[email protected]>
More referencing this for myself than anything... if you need to iterate through every possible binary combination where $n number of flags are set to 1 in a mask of $bits length:

echo masksOf(3,10);

function masksOf($n,$bits) {
	$u = pow(2,$bits)-1; //start value, full flags on.
	$masks = array();
	while ($u>0) {
		$z = numflags($u);
		if ($z==$n) array_push($masks,$u);
		$u--;
	}
	return ($masks);	
}

function numflags($n) {
	$k = 0;
	while ($n) {
		$k += $n & 1;
		$n = $n >> 1;
	}
	return ($k);

//	alternately: 
//	$u = 0;
//	for ($k=1;$k<=$n;$k*=2) {
//		$u+=($n&$k?1:0);
//	}
//	return ($u);
}
----
Server IP: 69.147.83.197
Probable Submitter: 79.154.133.1
----
Manual Page -- http://www.php.net/manual/en/language.operators.bitwise.php
Edit        -- https://master.php.net/note/edit/102403
Del: integrated  -- https://master.php.net/note/delete/102403/integrated
Del: useless     -- https://master.php.net/note/delete/102403/useless
Del: bad code    -- https://master.php.net/note/delete/102403/bad+code
Del: spam        -- https://master.php.net/note/delete/102403/spam
Del: non-english -- https://master.php.net/note/delete/102403/non-english
Del: in docs     -- https://master.php.net/note/delete/102403/in+docs
Del: other reasons-- https://master.php.net/note/delete/102403
Reject      -- https://master.php.net/note/reject/102403
Search      -- https://master.php.net/manage/user-notes.php