zen*_*hoy 1 c++ bitmask ones-complement
标题真的说明了一切:减一和蒂尔达(一补)零之间有什么区别?
在讨论指定所有位都设置的位掩码的最佳方法时出现了这个问题.以下哪项更好?
int func(int value, int mask = -1) {
return (value & mask);
}
Run Code Online (Sandbox Code Playgroud)
要么
int func(int value, int mask = ~0) {
return (value & mask);
}
Run Code Online (Sandbox Code Playgroud)
是否还有其他任何用途?
更新:在stackoverflow.com/q/809227/34509上有关于此主题的类似讨论,我在之前的研究中遗漏了这个问题 .感谢Johannes Schaub指出它.