在我正在处理的某些代码中,我应该处理十个独立参数,这些参数可以采用两个值(0 或 1)之一。这会创建 2^10 个不同的条件。有些情况永远不会发生,可以忽略不计,但确实发生的情况仍然很多,而且switch
要处理所有情况是疯狂的。
我想使用 10 个if
语句而不是一个巨大的switch
. 为此,我知道我应该使用标志位,或者更确切地说是标志字节,因为语言是 javascript,并且更容易使用 10 字节字符串来表示 10 位二进制文件。
现在,我的问题是,我不知道如何实现它。我已经看到在API
s 中使用了这个,其中多个可选选项以数字 1、2、4、8、...、n^(n-1) 显示,它们是 1、10、100、1000 等的十进制等价物。在二进制。因此,如果我们调用 like bar = foo(7)
, bar 将是一个对象,其中包含三个最右边的标志启用的任何选项。
我可以将十进制数转换为二进制数,并在每个if
语句中检查是否设置了相应的数字。但我想知道,有没有一种方法可以确定n-th
十进制数的位数是零还是二进制形式的一,而无需实际进行转换?