小编Jam*_*_BK的帖子

将BigInteger向左移动后出现意外值

我有一个字符串,我通过解析转换为BigInteger然后将其向左移3位并再次转换为字符串.问题是它总是在实际值之前输出额外的位.例如:

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim positiveString As String = "C0020ACB1086886D8C2E4D2DEDC726A6"
        Dim posBigInt As BigInteger = 0
        posBigInt = BigInteger.Parse(positiveString, System.Globalization.NumberStyles.AllowHexSpecifier)
        posBigInt = posBigInt << Hex(3)
        RichTextBox1.Text = posBigInt.ToString("X")
    End Sub
Run Code Online (Sandbox Code Playgroud)
  • 给我:E001056588434436C6172696F6E393530 - 哪个不对
  • 前4个字节应该是:00105658(我无法检查整个数组,因为我不知道另一种方法,除了BigInteger,用UInt64检查)

价值之前的"E"是我无法解释的.我尝试了不同的十六进制字符串但它总是产生那些额外的位 我究竟做错了什么?

vb.net biginteger bit-shift bit

1
推荐指数
1
解决办法
70
查看次数

标签 统计

biginteger ×1

bit ×1

bit-shift ×1

vb.net ×1