我有bool三个代表位的值.我想在表单中有一个整数
true true true = 7
false true false = 2
Run Code Online (Sandbox Code Playgroud)
我有
int val = 4*boolVal1 + 2*boolVal2 + boolVal3;
Run Code Online (Sandbox Code Playgroud)
还有另一种方式,甚至可能更简单吗?
Mar*_*ers 27
您可能会发现使用按位运算符而不是乘法和加法更清楚:
int val = (boolVal1 << 2) | (boolVal2 << 1) | boolVal3;
Run Code Online (Sandbox Code Playgroud)
或者你可以使用Horner的方法:
int val = (((boolVal1 << 1) | boolVal2) << 1) | boolVal3.
这也使得从语句中间添加或删除变量更容易,而不必更改所有其他系数.
但是,这对读者来说可能不太明显.