java - C# 中的 BigInteger.intValue() 等价物
问题描述
我正在尝试将 Java 代码翻译成 C#,但在使用 BigInteger 操作时遇到了问题。我在 C# 中找到了一些关于 BigInteger 实现和 intValue 本身的资源。但是在 C# 中没有关于 BigInteger.intValue 等价物的线索。Java中的定义是:
将此 BigInteger 转换为 int。此转换类似于 Java™ 语言规范第 5.1.3 节中定义的从 long 到 int 的缩小原语转换:如果此 BigInteger 太大而无法放入 int,则仅返回低 32 位。请注意此转换可能会丢失有关 BigInteger 值的整体大小的信息,并返回带有相反符号的结果。
但是在 C# 中使用 (int) 获得类似的结果会导致错误:
对于 Int32,值太大或太小。
我也尝试只使用低字节但没有成功如果有人帮助,将不胜感激
解决方案
要获取 Java 的行为,请屏蔽值的低位并转换结果:
int result = (int) (uint) (bi & uint.MaxValue);
推荐阅读
- python - 如何将两个数据数组绘制为彼此相邻的直方图
- python - 由其他列过滤的 Spark Dataframe 上的 Rolling Sum
- postgresql - Postgres 行级安全插入返回
- mongodb - 连接到远程桌面 windows 上运行的 mongodb 服务器
- deep-learning - Lambda 在这段代码中做了什么(python keras)?
- php - 在 MSSQL 中保存没有日期和月份的日期
- asp.net-core - 身份服务器身份令牌始终为空
- sql - 尝试连接 2 个字符串,结果以很多空格结尾
- sharepoint-2013 - 如何将主页 url 重定向到 sharepoint 2013 中的特定所需 url ..?
- python - (Python)是否有更简单的方法将列表中的元素分配给另一个列表中的元素?