2010-05-14 58 views
2

予有需要鏡像周圍的128於是中心的字節的值,該函數的示例輸出包括:邏輯鏡像字節值約128

In 0  Out 255 
In 255 Out 0 
In 128 Out 128 
In 127 Out 129 
In 30 Out 225 
In 225 Out 30 

我駕駛自己與此螺母,我確信當我讀到答案時我會踢自己。

乾杯

+3

確定關於127 <=> 1? – 2010-05-14 13:49:43

+1

你確定所有這些例子都對嗎? – 2010-05-14 13:51:32

+0

對不起,127-> 1的例子是錯誤的,更正了 – Kazar 2010-05-14 13:59:05

回答

3

沒有明顯的規則匹配您的示例輸出。

前兩個和最後一個結果可以用255-n來解釋,這可能是'鏡像'一個字節的正常解釋。但是128-> 128必須是256-n,而127-> 1看起來是不可理解的。

+0

使用255-n,特殊條件爲128.對不起有關奇怪的127-> 1的例子。 – Kazar 2010-05-14 14:04:01

+0

@Kazar:你不想要128的特殊情況 - 因爲偶數個字節,沒有「中心」值,所以當你像這樣反轉它們時,沒有值映射到它自己。例如:255-127是128(應該是),而不是129.如果你真的想翻轉所有的值大約128,你應該使用'256-n',在這種情況下'255-> 1',而不是變爲0(因爲256不適合一個字節) – 2010-05-14 14:15:40

+1

字節0-255範圍的'中心'(平均)值是127.5。 '255-n'鏡像127.5左右。如果你想鏡像正好128,你會得到值1-256,這很好,但它不適合一個字節。爲了使它適合一個字節,你可以剪輯來映射'1-> 255'和'0-> 255',當'129-> 128'> 128'> 128'> 128'> 128'時, 126'。 – bobince 2010-05-14 14:23:26

1

簡單的答案與您的表格不完全匹配的是255 - v

1

這個怎麼樣?

In 0  Out 255 
In 255 Out 0 
In 128 Out 127 
In 127 Out 128 
In 30 Out 225 
In 225 Out 30 

這將是255-N

0

如果你必須留一個字節中,使用(255-v) + (v==255)?0:1。否則,請使用256-v。這反映了大約128.如果要反映127.5左右,~v(按位不)可能會比255-v快。