【发布时间】:2011-08-04 16:27:57
【问题描述】:
动机: 我想将哈希(MD5/SHA1 等)转换为十进制整数,以便在 Code128C 中制作条形码。 为简单起见,我更喜欢所有得到的(大)数字都是正数。
我能够在 C# 中将 byte[] 转换为 BigInteger...
到目前为止我所拥有的样本:
byte[] data;
byte[] result;
BigInteger biResult;
result = shaM.ComputeHash(data);
biResult = new BigInteger(result);
但是(这里是生锈的 CS)我是否纠正了字节数组总是可以用两种方式解释:
- (A):作为有符号数
- (B):作为无符号数
是否可以在 C# 中从 byte[] 生成 UNSIGNED BigInteger?
我应该在 byte[] 前面简单地添加一个 0x00(零字节)吗?
编辑: 感谢 AakashM、Jon 和 Adam Robinson,附加零字节实现了我的需要。
EDIT2: 我应该做的主要事情是阅读 BigInteger(byte[]) 构造函数的详细文档,然后我会看到有关如何通过附加零字节来限制为正数的部分。
【问题讨论】:
-
你应该标记一个接受的答案
标签: c# arrays numeric biginteger