【发布时间】:2011-06-02 04:55:38
【问题描述】:
我在 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)
但是,我还发现该公式并不适用于每个任意范围。有人知道这个公式在什么情况下有效吗?
检查一个数字是否在特定范围内还有其他一些小技巧吗?
【问题讨论】:
标签: c++ c algorithm bit-manipulation