这是什么意思?
#define WS_RECURSIVE (1 << 0)
我明白它将定义WS_Recursive (1 << 0)
但什么是<<
mean?
Thanks!
<<
is the 左移运算符。正在转移号码1
向左转0
位,相当于数字1
.
它通常用于创建flags, 可以组合在一起的数字|
(位或)并且可以对它们应用各种操作,例如测试是否设置标志、设置标志、删除标志等。
它们之所以能够组合在一起而不会互相干扰,是因为它们都是一个两个的幂,这就是使用的原因1 << x
,因为这会产生 2 的幂:
1 << 0 == 20 == 1 == binary 0001
1 << 1 == 21 == 2 == binary 0010
1 << 2 == 22 == 4 == binary 0100
1 << 3 == 23 == 8 == binary 1000
etc
您可以在这里阅读有关位标志的信息:http://www.codeproject.com/KB/tips/Binary_Guide.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)