Algorithm 确定总和是否为2的幂
确定任意正整数之和是否为二的幂的最快算法(在渐近最坏情况下时间复杂度)是什么?一个可爱的比特旋转技巧是测试Algorithm 确定总和是否为2的幂,algorithm,math,Algorithm,Math,确定任意正整数之和是否为二的幂的最快算法(在渐近最坏情况下时间复杂度)是什么?一个可爱的比特旋转技巧是测试x&(x-1)是否等于0 请注意,如果x等于0,您需要决定要做什么,此测试将0标记为2的幂,因此您可能希望在这种情况下出现异常 从总和中减去1,并对原始数字执行位与运算。2的幂的结果为0。您可以使用什么操作?@RenéG这并不能真正回答问题。例如,无论操作数的大小,加法是否被认为是常数时间?
x&(x-1)
是否等于0
请注意,如果x等于0,您需要决定要做什么,此测试将0标记为2的幂,因此您可能希望在这种情况下出现异常 从总和中减去1,并对原始数字执行位与运算。2的幂的结果为0。您可以使用什么操作?@RenéG这并不能真正回答问题。例如,无论操作数的大小,加法是否被认为是常数时间?