在我正在处理的一些代码中,我应该处理十个独立参数,它们可以取两个值(0或1)中的一个。这创造了2^10个不同的条件。有些情况从未发生过,可以省略,但是确实发生的情况仍然很多,并且使得所有情况都是疯狂的。标志位计算和检测
我想使用10 if
语句而不是巨大的switch
。为此,我知道我应该使用标志位,或者标志字节,因为语言是javascript,它更容易与10字节的字符串一起使用来表示10位二进制文件。
现在,我的问题是,我不知道如何实现这一点。我已经看到这在API
s中使用,其中多个可选选项暴露为数字1,2,4,8,...,n ^(n-1),它们是1,10,100,1000等的十进制等价物二进制。因此,如果我们拨打电话bar = foo(7)
,酒吧将是一个对象,无论三个最右边的标志启用了什么选项。
我可以将十进制数转换为二进制数,并在每个if
语句中检查是否设置了相应的数字。但我不知道,有没有办法确定n-th
的十进制数字是零还是一位二进制形式,没有实际上是在做转换吗?
WOW!很快!我想马上接受你的回答,但显然我应该等待至少9分钟。非常感谢。 – 2010-04-25 07:24:56
+1正在输入类似的内容,但速度更快;) – 2010-04-25 07:28:50