Непонятная формулировка в назначении
Так что я делаю это задание из Принстона (нет, это не моя домашняя работа, и я тоже не учусь в университете), и на следующей странице я обнаружил смутную строчку "http://www.cs.princeton.edu/courses/archive/fall10/cos126/assignments/lfsr.html", линия находится чуть ниже первого изображения трубы.
Для каждого пикселя (x, y), в порядке (0, 0), (0, 1), (0, 2), ..., извлеките красный, зеленый и синий компоненты цвета (каждый компонент целое число от 0 до 255). Затем, xor красный компонент с 8 новыми сгенерированными битами. Сделайте то же самое для зеленого (используя еще 8 вновь сгенерированных битов) и, наконец, для голубого. Создайте новый цвет, используя результат операций xor, и установите пиксель на этот цвет.
Я не совсем уверен, как новый цвет может быть создан после 3 операций xor, так как операция xor приведет только к значению true или false.
6 ответов
Нет, вы сохраняете значение 8-битного компонента цвета с помощью другого 8-битного значения в соответствии с:
1010 1010
xor 1111 0000
---- ----
0101 1010
В то время как один xor
оперирует двумя битами для получения другого бита, выполнение этой операции над многобитными значениями означает выполнение каждого бита по очереди.
Смотрите также этот ответ.
Xor в логических (логических) операциях возвращает только true или false, но вы также можете использовать побитовый xor. В этом случае каждый бит в числе (в данном случае 8-битное значение) обрабатывается так, как если бы он был логическим. Это приводит к тому, что 8 новых битов будут либо истинными, либо ложными, возвращая новое 8-битное значение Три из них вместе дадут вам значение RGB.
поскольку операция xor выдаст только значение true или false.
Ваше утверждение не соответствует действительности. например:
1110 xor 1001 = 0111
для получения дополнительной информации см.: http://en.wikipedia.org/wiki/Bitwise_operation
Я думаю, что это битовое XOR, вы конвертируете цвет в двоичный, а затем XOR каждой цифры, чтобы получить результат. Например, 00001111 XOR 11111111 = 11110000
Я не совсем уверен, как новый цвет может быть создан после 3 операций xor, так как операция xor приведет только к значению true или false.
В этом случае xor работает бит за битом. Таким образом, результат равен 1 или 0, но для каждого отдельного бита.
1111 1111 xor
1010 1010 =
0101 0101