Author: Ricardo Gibert
Date: 04:04:50 07/27/03
Go up one level in this thread
On July 27, 2003 at 06:51:51, Uri Blass wrote: >In movei there are cases when I want to change 2 bits of a number to be >identical to the bits of another number. > >Let say I want b=a in the 2^0 bit and the 2^8 bit > >The simple way is > >if (a&256) >b|=256; >else >b&=~256; >if (a&1) >b|=1; >else >b&=~1; > >a faster way that I could think about is: > >b|=(a&257); >b&=~(257-(a&257)); > >Is it the best way or maybe it is better to change the last line and have >b|=(a&257); >b&=~(257&(~(a&257))) > >Uri To compute b = a for mask m: b = (b&~m)|(a&m) [untested] That's 4 operations. 3 if m is a constant when the "~" will optimized away.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.