Это проще понять, если вы интерпретируете это по модулю 256 как побитовое И на 255, или, другими словами, сохраняете только наименее значимые 8 бит.
Понятно, что XOR не делает информацию от более высоких бит, перемещаемых к нижним битам (на самом деле нет движения в любом направлении), поэтому все, что происходит «там», не может иметь никакого значения для низких бит. Это могло бы иметь значение для высоких бит (которые XOR мог установить, а затем в зависимости от того, происходит ли первое или второе событие AND, эти биты соответственно сохраняются установленными или сброшенными), но по предположению, что этого не может быть здесь.
алгебраически, и распространяет через XOR, так
(a^b) & c =
& distributes over^
(a & c)^(b & c)
И мы имеем, что b & c = b
потому c
255 и b
находится в диапазоне от 0 до 255, так
(a & c)^(b & c) =
by assumptions
(a & c)^b
Это не связана с умножение, это могло быть буквально что угодно, я только что назвал эту часть a
здесь.