Хорошо, что комментарий выше объясняет, что он делает, но если вы ищете разбивку операторов:
- Выполнить побитовое
and
на salt[i]
и шестнадцатеричное число (оператор &
).
- Выполнение побитового
and
по адресу salt[i]
и второй номер шестнадцатеричного кода.
- Выполнение побитового
or
на основании результатов шагов 1 и 2 (оператор |
).
- Cast результат шага 3 к
byte
- магазин результат в
salt[i]
Результатом является то, что отмечается в комментарии блока. Номера формата 0xc0
и еще не шестнадцатеричные, что является базой 16. I.e. c0
в шестнадцатеричном эквиваленте 16*12 + 16*0 = 192
в десятичной системе. В шестнадцатеричном формате, поскольку у вас заканчиваются цифры в 9, вы начинаете использовать буквы. Таким образом, a = 10, b = 11, c = 12, d = 13, e = 14, f = 15, а f становится самой высокой «цифрой», так как вы переместитесь на одно место, когда вы доберетесь до 16 (16 является базой).
Смотрите также:
Вы понимаете, что есть комментарий прямо над этими строками, объясняющими, что он делает? – Joey
То, что вас смущает? Если вы запутались в коде или комментарии, можете ли вы рассказать о том, что вас сбивает с толку? –
вопрос о следующих операторах: & and | и 0xfc – ozsenegal