我的程序中有16个不同的选项,我有一个16个字符的变量,根据所选的选项填充1或0(0000000000000000表示没有选择,0010101010000101表示选项3,5,7,9,选择14和16,1111111111111111表示选择了所有内容。)
当我运行我的程序时,代码看起来(使用if语句)在16位数字的指定字符中为1,如果有一个那么它运行该选项的代码,否则它会跳过它。
例如,选项3也会查看第3个字符(0010000000000000)是否为1,如果是,则运行代码。
现在我要做的是生成一个可能的每个不同组合的列表,这样我就可以为它创建一个选项来循环并运行每个可能的选项:
0000000000000001
0000000000000010
0000000000000011
...
1111111111111100个
1111111111111110个
1111111111111111个
我试过这个,但我认为运行jaja可能需要几年时间。
Dim binString As String
Dim binNUM As Decimal =“0.0000000000000001”
Do Until binNUM = 0.11111111111111111
binString = binNUM.ToString
If binString.Contains(1) Then
If binString.Contains(2) Or binString.Contains(3) Or binString.Contains(4) Or binString.Contains(5) Or binString.Contains(6) Or binString.Contains(7) Or binString.Contains(8) Or binString.Contains(9) Then
Else
Debug.Print(binNUM)
End If
End If
binNUM = binNUM + 0.0000000000000001
在上面的代码完成之后,我将获取输出列表并删除任何“0”的实例。然后任何少于16个chararcters的行(因为最后一个字符将是0而不显示)我会添加一个0直到有16个字符。我知道这一点可能是愚蠢的,但它远远超过了我的
有没有更快的方法可以在VB.net中生成这样的列表?
答案 0 :(得分:1)
您应该可以使用Convert.ToString
获取列表,如下所示:
Dim sb As New System.Text.StringBuilder
For i As Integer = 0 To 65535
sb.AppendLine(Convert.ToString(i, 2).PadLeft(16, "0"c))
Next
Debug.Print(sb.ToString())
BTW:这应该在一秒钟内完成,具体取决于您的系统; - )
答案 1 :(得分:0)
使用@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
//you get data in email app (TypeApp) Activity
}
}//onActivityResult
创建enum
,这样您就可以执行列出的关键功能。以下是我正在处理的一个小项目中设置它的示例:
FlagAttributes
e.g。
<FlagsAttribute>
Public Enum MyFlags As Integer
None = 0
One = 1
Two = 2
Three = 4
Four = 8
Five = 16
Recon = 32
Saboteur = 64
Mine = 128
Headquarters = 256
End Enum
真正的优势在于它是如何打印出来的,如果你想要的东西不是0,1,而且更加人性化。