nAv*_*viD 4 c# java biginteger
这是Java代码:
new BigInteger("abc".getBytes()).toString();
Run Code Online (Sandbox Code Playgroud)
结果是6382179。
我想在 C# 中得到相同的结果,但是当我使用以下代码时:
(new System.Numerics.BigInteger(System.Text.Encoding.ASCII.GetBytes("abc"))).ToString();
Run Code Online (Sandbox Code Playgroud)
我得到6513249。
如何在 C# 中以与 Java 相同的方式转换字符串?
C#BigInteger将字节数组视为小端:
参数
价值
Byte[]以小端顺序排列的字节值数组。
而 JavaBigInteger将字节数组视为大端:
将包含 BigInteger 的二进制补码表示的字节数组转换为 BigInteger。输入数组假定为大端字节序:最高有效字节在第零个元素中。
因此,您需要反转字节数组以获得与其他语言相同的结果。
另请注意,JavaString.getBytes使用默认编码,可能不是 ASCII。你应该使用
StandardCharsets.US_ASCII.encode("abc").array()
// or
"abc".getBytes(StandardCharsets.US_ASCII)
Run Code Online (Sandbox Code Playgroud)
获取与 C# 代码相同的字节集。
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |