分类: C/C++
2008-03-13 09:37:08
一个有意思的运算:
to be or not to be
=2B or not 2B
=2B|-2B
=0xFF
2B是to be的英文谐音,
十六进制里面2B代表一个数字。
not表示非运算,用“-”表示。
or表示或运算,用“|”表示。
如果你使用过搜索引擎的高级搜索,
肯定知道not 和or。
比如想得到包含“美的”但不包含“优美的”搜索结果,
只要搜索“美的 -优美的”即可。
想要得到包含“土豆”或者“玉米”中任一个的搜索结果,
只需搜索“土豆 | 玉米”或“土豆 OR 玉米”即可。
有些搜索引擎需要注意大小写和空格。
回到上面的算式,
2B|-2B表示把数字2B和-2B进行或运算。
得到的结果是0xFF(转换成十进制为255).
实际上把任何数字进行非运算,
然后再和自己进行或运算,结果都是0xFF