un_or_all

new topic     » topic index » view thread      » older message » newer message
global function un_or_all(atom a) 
	atom item, x 
	sequence result 
 
	item = 1 
	result = {} 
	while (a) do 
		x = and_bits(a, item) 
		if (x) then 
		result &= x 
		a -= x 
		item *= 2 -- left shift 
	end while 
 
	return result 
end function 
 
? un_or_all(or_all({8, 1, 2, 32})) -- {1, 2, 8, 32} 
? un_or_all(or_all({1, 5, 8, 16, 32})) -- {1, 4, 8, 16, 32} 

This message brought to you by
Unkmar - Lucius L. Hilley III

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu