在不截断前导零的情况下,使用C#将String从String转换为BigInteger。

时间:2018-11-05 04:55:20

标签: c# asp.net

正在做一个项目,我需要在两个相似的168个字符位数组之间进行按位运算。我在C#中工作,当我尝试从String转换为BigInteger时,前导零被截断。我有什么办法可以保存这些字符?

基本上:

string bits = "000000000000000000000000000000000000000000000000000000000000000000001111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"

BigInteger bigIntBits = BigInteger.Parse(bits);
// I am being returned 1111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"

任何事情都会有所帮助。先感谢您。

1 个答案:

答案 0 :(得分:0)

您可以简单地执行以下操作:

string bits = "000000000000000000000000000000000000000000000000000000000000000000001111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
 // convert to big integer
 var bigIntBits = BigInteger.Parse(bits);
 int index = bits.IndexOf('1');            
 string backToString = new string('0', index) + bigIntBits.ToString();