Эй! Я искал этот код на 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;
От шестнадцатеричного числа к десятичному я получил за это шестнадцатеричное число 4294901760.
Итак, здесь, в этой строке они делают немного И и сравнивают результат с 0 ??
Почему бы просто не использовать номер?
Может кто-нибудь объяснить, пожалуйста, и приведите примеры других ситуаций.
Также я видел большие строки кода, где это просто шестнадцатеричные числа, и никогда не понимал почему: (