Логика для зеркального отображения значения байта около 128 - PullRequest
2 голосов
/ 14 мая 2010

Мне нужно отразить значение байта вокруг центра 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

Я схожу с ума с этим, я уверен, что пну себя, когда прочитаю ответы.

Приветствия

Ответы [ 4 ]

3 голосов
/ 14 мая 2010

Нет очевидного правила, соответствующего вашему примеру вывода.

Первые два и последний результат могут быть объяснены 255-n, что может быть обычной интерпретацией «зеркального отображения» байта. Но 128-> 128 должно было бы быть 256-n, а 127-> 1 казалось бы необъяснимым.

1 голос
/ 14 мая 2010

Как насчет этого?

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-н

1 голос
/ 14 мая 2010

Простой ответ, который не совсем соответствует вашей таблице: 255 - v.

0 голосов
/ 15 мая 2010

Если вы должны оставаться в пределах байта, используйте (255-v) + (v==255)?0:1. В противном случае используйте 256-v. Это отражает около 128. ~v (не поразрядно) может быть быстрее, чем 255-v, если вы хотите отражать около 127,5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...