我在ICU库(国际Unicode组件)的"source\common\unicode\utf.h"
文件中发现了一些有趣的位操作技巧。这些位操作技巧旨在检查一个数值是否在特定范围内。
// 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)
然而,我也发现这个公式并不适用于任意范围。这里是否有人知道在什么情况下该公式有效?
是否有其他位运算方法可以检查一个数字是否在特定范围内?