我正在将一些代码从php移植到vb.net,但我卡住了 关于XOR功能。其中一个,我不能执行XOR 值大于整数数据类型范围。
这是我的测试代码:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim A As Integer = 1254378503
Dim B As Integer = 3058210502 'Overflow here
Dim SIGN1 = A Xor B
Dim SIGN2 = EncodeBase64(SIGN1)
MsgBox(SIGN2)
End Sub
Public Function EncodeBase64(ByVal input As String) As String
Return System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(input))
End Function
End Class
我一直在浏览有关我的问题的其他帖子,但老实说 我找不到任何解决方案或根本无法理解它。基本问题是如何像php一样对十进制数据类型(大于整数)执行XOR。
任何有关如何实现这一目标的帮助或暗示都会有很多不足之处。
答案 0 :(得分:0)
简单的回答。使用Long
代替Integer
。基本上,Integer
类型太小,无法保存您在样本中使用的值。
测试代码的输出为NDIzNzA4OTQ3Mw==
- 通过VS Express进行编码,只是为了表明这实际上有效。