Vra

nuuskierig as iemand 'n insig in hoe ek die volgende aan 'n binêre getal sou doen kan hê:

skakel

   01+0 -> 10+1 (+ as in regular expressions, one or more)
    01 -> 10  
    10 -> 01  

so,

10101000010100011100
01010100101010100010

en om te verduidelik dat dit nie 'n eenvoudige inversie:

000000100000000000
000001010000000000

Ek het gedink regex, maar ek werk met binêre getalle en wil om so te bly. Die bietjie twiddling hacks bladsy het nie my enige insig óf gegee. Dit het duidelik 'n paar kern van sellulêre outomate. So, iemand het 'n paar bietjie bedrywighede wat kan sorg van hierdie? (Geen kode nodig, ek weet hoe om dit te doen).

Was dit nuttig?

Oplossing

Kom ons sê x is jou veranderlike. Dan moet jy wil hê:

unsigned myBitOperation(unsigned x)
{
    return ((x<<1) | (x>>1)) & (~x);
}

Ander wenke

Twidle in C / C ++ is ~

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top