status != ~0 这个 ~0 什么意思?

status != ~0 这个 ~0 什么意思?

img

~是位操作,表示对所有的位取反。~0的意思就是一个所有bit都是1的数字

补充一点:~0也是快速获得所有位为1的整数的最佳方案,因为如果让你自己去写一个二进制位都为1的整数,你可能就需要写0b11111111这样的形式,整数有多少bit就得写多少个1,这种写法既显得很长又很有可能因为疏忽出错,所有就有了~0这种优雅的写法,让编译器自己去把0对应的位取反。

~ 位非运算符:如果位为0,结果是1,如果位为1,结果是0.