将BigInterger转换为十六进制字符串表示形式

时间:2018-07-04 04:27:04

标签: string vb.net hex biginteger

我有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 :(得分:0)

看起来像这样(“ X”)可以做的事情:

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

在关于biginterger的c#线程上找到它:BigInteger to Hex/Decimal/Octal/Binary strings?