c# - 在 C# 中从 String 转换为 BigInteger,而不切断前导零。
问题描述
从事一个项目,我需要在两个相似的 168 字符位数组之间进行按位 &。我在 C# 中工作,当我尝试从 String 转换为 BigInteger 时,前导零被截断。我能做些什么来拯救这些角色吗?
基本上:
string bits = "000000000000000000000000000000000000000000000000000000000000000000001111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
BigInteger bigIntBits = BigInteger.Parse(bits);
// I am being returned 1111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
任何事情都会有所帮助。先感谢您。
解决方案
你可以简单地这样做:
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();
推荐阅读
- ansible - 如何使用 ansible 在私有子网(Windows)中安装应用程序?
- php - 如何在php中进行注册验证
- rust - 为什么我不能重新绑定引用变量,但我可以重新绑定结构中的引用字段?
- reactjs - 如何使用 React 将多个 html 表导出到 Excel?
- sql - 是否有任何选项可以在参数的 where 子句中替换 NVL
- ruby - 如何在 Ruby on Rails 中通过 Google Contact API 获取常用联系人
- reactjs - 根据用户在 REACT 中选择下拉值动态呈现选择表单项?
- django - 如何更改默认的 numpy 错误处理
- node.js - npm run start 在 Windows 之外的不同操作系统上找不到 node_modules 文件夹
- types - 类型转换如何在 Python 中工作?