if (d >= 0)

clipflags &= ~(1<<i);

EDIT: I understand the bitshifting part (in this case multiplying by 2)

Printable View

- 02-03-2003SilvercordWhat the heck does this mean/do
if (d >= 0)

clipflags &= ~(1<<i);

EDIT: I understand the bitshifting part (in this case multiplying by 2) - 02-03-2003Speedy5
if d is 0 or positive:

clipflags AND by two's complement by i

notes:

1*i=i

two's complement=

0 = 1

1 = 0

so:

1011 will equal to 0100

i do a bitwise AND - 02-03-2003Speedy5
godammit! i hate the way i always make mistakes on my posts.

1 is shifted i times to the left

there, or multiplied by 2, i times. or 2^i (not XOR in this case, this is math now, lol) - 02-03-2003grib
actually :) ~ is bitwise not so what this does is shift 1 to the right to the i'th bit (counting from the least significant bit), negate or invert every bit (so every bit but the i'th is set) and and(heh) it with clipflags, having the effect of turning off the i'th bit and leaving the rest unchanged.

the two's comliment of n is (~n)+1, remember the two's comliment of zero is zero. - 02-03-2003Speedy5
well i wasn't wrong though....

- 02-03-2003grib
No, it's just two's compliment has a different meaning. Technically ~ is one's compliment but no-one calls it that. To make life more fun people do call binary not or invert negate, and the most common form of signed integers uses two's compliment for negitive ints! I wasn't trying to be mean, take it as a compliment :P

- 02-03-2003Speedy5
lol, ok :)

yea, u're rite. i said it wrong (two instead of one) but i explained it right. LOL, thanks - 02-03-2003Perspective
yeah, that's right. one's compliment is just flipping the bits. remember, if you want to do 2's compliment, you have to flip the bits then add 1.

so:

1011 ->2's compliment-> 0101