我们有以下项目供用户选择:
- 第 1 项
- 第 2 项
- 第 3 项
- 第 4 项
当用户选择项目并提交时,我们会保存信息,例如
- 如果选择 item1 和 item2 (2^1, 2^2),则 2+4=6
- 如果 item1 和 item3 (2^1, 2^3),则 2+8=10
- 假设,如果用户选择所有项目,则为 30。
我想检查用户是否从已选择的值中选择了item1或item2或item3或item4。 如何在 c# 或 ms-sql 或 javascript 中找到它?
最佳答案
基本上,将数字表示为 2 的幂之和就是二进制数字表示的全部内容。考虑 19 = 1 + 2 + 16,因此二进制为 10011。如果要检查总和是否包含特定的 2 的幂,可以使用 bitwise operations
if(myNum & (1 << i))
将检查第 i 位是否已设置,或者换句话说,总和是否包含 2 的 i 次方。
关于javascript - 找出两个数的幂之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39873353/