Бит-тидлинг для проверки того, находится ли число в определенном диапазоне

Я обнаружил несколько интересных битов в файле "source \ common \ unicode \ utf.h" библиотеки ICU (Международные компоненты для Unicode). Перестановка битов предназначена для проверки того, находится ли число в определенном диапазоне.

// Is a code point in a range of U+d800..U+dbff?
#define U_IS_LEAD(c) (((c)&0xfffffc00)==0xd800)

Я выяснил, что магическое число (0xfffffc00) взято из:

MagicNumber = 0xffffffff - (HighBound - LowBound)

Однако я также обнаружил, что формула не применима ко всем произвольным диапазон. Кто-нибудь здесь знает, в каких обстоятельствах работает формула?

Есть ли еще один способ проверить, находится ли число в определенном диапазоне?

11
задан David Jones 10 April 2019 в 09:10
поделиться