Конвертировать BigInterger в шестнадцатеричное представление строки - PullRequest
0 голосов
/ 04 июля 2018

У меня есть 16-байтовая строка, которую я смещаю влево, после того, как я сдвигаю ее влево, я пытаюсь отобразить результат в RichTextbox:

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Dim positiveString As String = "00082B002C421A21B630B934B7B71C9A99"
    Dim posBigInt As BigInteger = 0
    posBigInt = BigInteger.Parse(positiveString, System.Globalization.NumberStyles.AllowHexSpecifier)
     posBigInt = (posBigInt << 1)
    RichTextBox1.Text = Hex(posBigInt.ToString)
End Sub
Public Function StrToHex(ByRef Data As String) As String
    Dim sVal As String
    Dim sHex As String = ""
    While Data.Length > 0
        sVal = Conversion.Hex(Strings.Asc(Data.Substring(0, 1).ToString()))
        Data = Data.Substring(1, Data.Length - 1)
        sHex = sHex & sVal
    End While
    Return sHex
End Function

Функция StrToHex дает мне неправильный вывод, и если я пытаюсь, Hex (posBigInt.ToString) дает мне правильный вывод, если значение соответствует uint64, поэтому Hex () не может соответствовать biginterger

1 Ответ

0 голосов
/ 04 июля 2018

Похоже, что это ("X") делает вещь:

RichTextBox1.Text = posBigInt.ToString("X")

Нашел на ните c # о biginterger: BigInteger в шестнадцатеричные / десятичные / восьмеричные / двоичные строки?

...