c# - 将 32 位十六进制数转换为长整数的问题

标签 c# hex

我试过了

string inpStr = "800000000000000026FFF40000000000";
long num = long.Parse(inpStr, NumberStyles.HexNumber);

并得到错误“值对于 Int64 来说太大或太小”。如果我使用 16 位十六进制,它工作正常。我如何让它与 32 位十六进制值一起使用?

最佳答案

long 不适合 32 位十六进制数(它是 64 位,因此最多可以容纳 16 位十六进制值)

在 .NET 4.0 中,您可以使用 BigInteger:

const string inpStr = "800000000000000026FFF40000000000";
BigInteger num = 
      BigInteger.Parse(inpStr, System.Globalization.NumberStyles.HexNumber); 

关于c# - 将 32 位十六进制数转换为长整数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4362383/

相关文章:

Java 字符串,单个字符到十六进制字节

arm - 英特尔十六进制记录类型 03 或 05 在 ARM 的 iHex 程序中起什么作用?

c# - 使用smtp端口发送邮件时的异常处理

c - 获取十六进制数字的字符表示(创建 char* 以显示十六进制值)

MySQL SELECT 和 CREATE 给出不同的结果 : Character respectively hexadecimal

c# - 从字符串 ascii 转换为字符串 Hex

c# - 编译表达式抛出不能用于返回类型 ArgumentException

c# - 使用其他语音时的文本到语音 SAPI5 AccessViolationException

c# - SQLite 数据库 (.db) 的性能问题

c# - 3D稀疏矩阵实现?