Java 获取导致另一个事件的数字?
在巴西,一些公共考试使用这种替代系统:Java 获取导致另一个事件的数字?,java,algorithm,math,numbers,Java,Algorithm,Math,Numbers,在巴西,一些公共考试使用这种替代系统: 01 - Alternative bla 02 - Alternative omg 04 - Alternative god 08 - Alternative hey TOTAL: [___] 这样,学生必须添加他们想要标记的备选方案中的值,并在总数中提示。备选方案的值由2^(备选方案编号-1)定义。因此,备选方案1的值为1,备选方案2的值为2,备选方案3的值为4,以此类推 那么,我如何才能得到构建的值总数 例如,我有23。这个数字是通过添加16+04
01 - Alternative bla
02 - Alternative omg
04 - Alternative god
08 - Alternative hey
TOTAL: [___]
这样,学生必须添加他们想要标记的备选方案中的值,并在总数中提示。备选方案的值由2^(备选方案编号-1)
定义。因此,备选方案1的值为1,备选方案2的值为2,备选方案3的值为4,以此类推
那么,我如何才能得到构建的值
总数
例如,我有23
。这个数字是通过添加16+04+02+01
来建立的。您可以将可能的备选方案解释为位掩码,并使用&
、按位和
运算符以及“total”值来测试是否选择了一个备选方案:
if ((total & 1) != 0)
System.out.println("Alternative 01 was selected");
if ((total & 2) != 0)
System.out.println("Alternative 02 was selected");
if ((total & 4) != 0)
System.out.println("Alternative 04 was selected");
if ((total & 8) != 0)
System.out.println("Alternative 08 was selected");
if ((total & 16) != 0)
System.out.println("Alternative 16 was selected");
上述代码将告诉您已选择了1
、2
、4
和16
。为了可视化正在发生的事情,让我们将总值转换为二进制表示,因此23
变成:
10111 // 23
让我们依次应用每个位掩码:
10111 // 23
& 00001 // 1
-------
00001 // 1 was selected
上面告诉我们,实际上选择了1
选项。其他国家也同样如此:
10111 // 23
& 00010 // 2
-------
00010 // 2 was selected
10111 // 23
& 00100 // 4
-------
00100 // 4 was selected
10111 // 23
& 01000 // 8
-------
00000 // 8 was NOT selected
10111 // 23
& 10000 // 16
-------
10000 // 16 was selected
您可以将可能的备选方案解释为位掩码,并使用&
、位和
运算符以及“total”值来测试是否选择了一个备选方案:
if ((total & 1) != 0)
System.out.println("Alternative 01 was selected");
if ((total & 2) != 0)
System.out.println("Alternative 02 was selected");
if ((total & 4) != 0)
System.out.println("Alternative 04 was selected");
if ((total & 8) != 0)
System.out.println("Alternative 08 was selected");
if ((total & 16) != 0)
System.out.println("Alternative 16 was selected");
上述代码将告诉您已选择了1
、2
、4
和16
。为了可视化正在发生的事情,让我们将总值转换为二进制表示,因此23
变成:
10111 // 23
让我们依次应用每个位掩码:
10111 // 23
& 00001 // 1
-------
00001 // 1 was selected
上面告诉我们,实际上选择了1
选项。其他国家也同样如此:
10111 // 23
& 00010 // 2
-------
00010 // 2 was selected
10111 // 23
& 00100 // 4
-------
00100 // 4 was selected
10111 // 23
& 01000 // 8
-------
00000 // 8 was NOT selected
10111 // 23
& 10000 // 16
-------
10000 // 16 was selected
您可以将可能的备选方案解释为位掩码,并使用&
、位和
运算符以及“total”值来测试是否选择了一个备选方案:
if ((total & 1) != 0)
System.out.println("Alternative 01 was selected");
if ((total & 2) != 0)
System.out.println("Alternative 02 was selected");
if ((total & 4) != 0)
System.out.println("Alternative 04 was selected");
if ((total & 8) != 0)
System.out.println("Alternative 08 was selected");
if ((total & 16) != 0)
System.out.println("Alternative 16 was selected");
上述代码将告诉您已选择了1
、2
、4
和16
。为了可视化正在发生的事情,让我们将总值转换为二进制表示,因此23
变成:
10111 // 23
让我们依次应用每个位掩码:
10111 // 23
& 00001 // 1
-------
00001 // 1 was selected
上面告诉我们,实际上选择了1
选项。其他国家也同样如此:
10111 // 23
& 00010 // 2
-------
00010 // 2 was selected
10111 // 23
& 00100 // 4
-------
00100 // 4 was selected
10111 // 23
& 01000 // 8
-------
00000 // 8 was NOT selected
10111 // 23
& 10000 // 16
-------
10000 // 16 was selected
您可以将可能的备选方案解释为位掩码,并使用&
、位和
运算符以及“total”值来测试是否选择了一个备选方案:
if ((total & 1) != 0)
System.out.println("Alternative 01 was selected");
if ((total & 2) != 0)
System.out.println("Alternative 02 was selected");
if ((total & 4) != 0)
System.out.println("Alternative 04 was selected");
if ((total & 8) != 0)
System.out.println("Alternative 08 was selected");
if ((total & 16) != 0)
System.out.println("Alternative 16 was selected");
上述代码将告诉您已选择了1
、2
、4
和16
。为了可视化正在发生的事情,让我们将总值转换为二进制表示,因此23
变成:
10111 // 23
让我们依次应用每个位掩码:
10111 // 23
& 00001 // 1
-------
00001 // 1 was selected
上面告诉我们,实际上选择了1
选项。其他国家也同样如此:
10111 // 23
& 00010 // 2
-------
00010 // 2 was selected
10111 // 23
& 00100 // 4
-------
00100 // 4 was selected
10111 // 23
& 01000 // 8
-------
00000 // 8 was NOT selected
10111 // 23
& 10000 // 16
-------
10000 // 16 was selected
研究如何将数字转换成二进制。1的位置将为您提供“备选方案”的索引。e、 g.23=10111(二进制)。这意味着,从右到左,第1、第2、第3和第5个备选方案用于构建23。请注意将数字转换为二进制。1的位置将为您提供“备选方案”的索引。e、 g.23=10111(二进制)。这意味着,从右到左,第1、第2、第3和第5个备选方案用于构建23。请注意将数字转换为二进制。1的位置将为您提供“备选方案”的索引。e、 g.23=10111(二进制)。这意味着,从右到左,第1、第2、第3和第5个备选方案用于构建23。请注意将数字转换为二进制。1的位置将为您提供“备选方案”的索引。e、 g.23=10111(二进制)。这意味着,从右到左,第1、第2、第3和第5个备选方案用于建造23。@BloodShura没问题,这是我的荣幸:)@BloodShura没问题,这是我的荣幸:)@BloodShura没问题,这是我的荣幸:)