Эй! Я смотрел этот код на http://www.gnu.org/software/m68hc11/examples/primes_8c-source.html
Я заметил, что в некоторых ситуациях они использовали шестнадцатеричные числа, как в строке 134:
for (j = 1; val && j <= 0x80; j <<= 1, q++)
Теперь зачем использовать 0x80? Я не так хорош с шестнадцатеричным, но я нашел онлайн-шестнадцатеричное значение десятичного числа, и он дал мне 128 для 0x80.
Также перед строкой 134 в строке 114 они имеют следующее:
small_n = (n & 0xffff0000) == 0;
Значение hex для десятичного значения дало мне 4294901760 для этого шестнадцатеричного числа. Итак, здесь, в этой строке, они делают бит И и сравнивают результат с 0??
Почему бы просто не использовать номер? Может ли кто-нибудь объяснить и прошу привести примеры других ситуаций.
Также я видел большие строки кода, где он просто шестнадцатеричные числа и никогда не понимал почему: (