Непонятная формулировка в назначении

Так что я делаю это задание из Принстона (нет, это не моя домашняя работа, и я тоже не учусь в университете), и на следующей странице я обнаружил смутную строчку "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

Другие вопросы по тегам