Я переношу код с php на vb.net, но застрял по функции исключающее ИЛИ. Я не могу выполнить XOR, когда один из values больше диапазона целочисленных типов данных.
Вот мой тестовый код:
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
Я просматривал другие сообщения, касающиеся моего вопроса, но, честно говоря, Я не могу найти никакого решения или просто не могу его понять. Основной вопрос заключается в том, как выполнить XOR для десятичного типа данных (больше, чем целое число), как это делает php.
Любая помощь или подсказка о том, как этого достичь, будут высоко оценены.
Если вам нужны еще большие числа, чем позволяет
Long
илиDecimal
, взгляните наBigInteger
<41993333481497>. Он также поддерживает XOR.