我对vb.net并不是那么好,但我遇到了一个问题。 我必须将一个字符串转换为二进制(我已经完成的事情),但在那之后,我必须通过将其与另一个字符串组合来加密字符串,也将其转换为二进制。
问题:我在字符串y()的帮助下弄明白这个结果,但结果的维度大于32位,我得到错误:{"索引超出了数组的范围。 "}
我怎么解决这个问题? 感谢Dim preluare As String = TextBox5.Text ' the binary text i have to encrypt
Dim inter() As Char = preluare.ToCharArray
Dim b As Integer = TextBox5.Text.Count
Dim x As String = TextBox15.Text ' the key of encryption
Dim y() As Char = x.ToCharArray
Dim bb As Integer = TextBox15.Text.Count
'密钥必须与初始文本
相同 If b > x.Count Then
While x.Count < b
x = x + x
End While
End If
If x.Count > b Then
Dim w As Integer = x.Count
x = x.Trim().Substring(w - b)
End If
&#39; xor操作
For i As Integer = 0 To b - 1
If inter(i) = "0" Then
'MsgBox(i)
If y(i) = "0" Then ' THIS IS WHERE I GET THE ERROR
TextBox10.Text = TextBox10.Text + "0"
Else
TextBox10.Text = TextBox10.Text + "1"
End If
Else
If inter(i) = "1" Then
If y(i) = "0" Then
TextBox10.Text = TextBox10.Text + "1"
Else
TextBox10.Text = TextBox10.Text + "0"
End If
End If
End If
Next
答案 0 :(得分:0)
如果您确定错误是因为y()
的大小大于32位整数,那么如何将64位整数数据类型用作计数器:
For i As Int64 = 0 To b - 1
.......
.......
Next
答案 1 :(得分:0)
你可以使用无符号变量 uint16,uint32 ...