标题确实说明了一切:减一和tilda(补码)零有什么区别?
在讨论指定设置所有位的位掩码的最佳方法时,出现了这个问题。以下哪个更好?
int func(int value, int mask = -1) {
return (value & mask);
}
或者
int func(int value, int mask = ~0) {
return (value & mask);
}
是否有任何其他用途,它会反过来吗?
更新:在stackoverflow.com/q/809227/34509上对此主题进行了类似的讨论 ,我在之前的研究中错过了这些讨论。感谢 Johannes Schaub 指出这一点。