0

ハッカーの喜びに、xasの絶対値を計算する例があります(х XOR (x >> 31)) - (x >> 31)

x >> 31の符号を返すことは知っていますx。ブール代数は理解できますが、どのように機能し(х XOR (x >> 31)) - (x >> 31)ますか?

4

2 に答える 2

0

(x XOR y) - y は、負の数に対して 2 の補数を実行しているだけです。正の数の場合、y は 0 になるため、x は変更されません。

例。x = -2。

-2 は 0xFFFFFFFE として表されます

x>>31 は y = 0xFFFFFFFF (つまり -1) になります。

x XOR y は x のすべてのビットを反転し、結果を 0x00000001 として返します

(x XOR y) - y = 0x00000001 - (-1) = 0x00000002.

于 2014-03-25T12:30:52.767 に答える