2010-05-14 63 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快。