首页 > 解决方案 > 在 C# 中从 String 转换为 BigInteger,而不切断前导零。

问题描述

从事一个项目,我需要在两个相似的 168 字符位数组之间进行按位 &。我在 C# 中工作,当我尝试从 String 转换为 BigInteger 时,前导零被截断。我能做些什么来拯救这些角色吗?

基本上:

string bits = "000000000000000000000000000000000000000000000000000000000000000000001111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"

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

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

标签: c#asp.net

解决方案


你可以简单地这样做:

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();    

推荐阅读