C#将十六进制字符串转换为十进制。为什么是负值?

用户名

下面的HEX-> DEC代码对于某些值返回负值。

外汇十六进制:a4ddfc12应该是:2766011410,但由于某种原因的C#返回:-1528955886

代码:https//rextester.com/SHSC23645

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {
            string myHexStr = "a4ddfc12";
            Console.WriteLine(Int32.Parse(myHexStr, 
System.Globalization.NumberStyles.HexNumber).ToString());
        }
    }
}

如果使用此命令,它将是相同的:Console.WriteLine(Int32.Parse(Convert.ToInt32(myHexStr,16).ToString(););

预计获得:2766011410

格兰特·温尼

该数字太大而无法容纳32位整数,该整数最大为2147483647,并且溢出

请改用64位整数:

string myHexStr = "a4ddfc12";

Console.WriteLine(Int64.Parse(myHexStr, NumberStyles.HexNumber).ToString());  // 2766011410

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用C将十六进制字符串常量转换为十进制值

将C中的十六进制字符串转换为十进制

将字符串转换为十六进制,十进制和八进制

如何将十进制转换为十六进制字符串的十六进制和XOR

Python将十六进制字符串转换为十进制值

将十进制NSString转换为十六进制字符串

Spark:将十六进制字符串转换为十进制

将十六进制字符串转换为十进制整数

如何将很大的十进制字符串转换为十六进制?

将大的十六进制字符串转换为十进制

如何将十六进制字符串转换为十进制值

将十六进制字符串转换为十进制整数

将十六进制字符串转换为无符号十进制值

如何在 C++ 中将十六进制转换为十进制字符串?

Arduino:将十六进制字符串转换为uint64或十进制字符串

从 jq 得到的十六进制字符串无法转换为十进制值

Python Pandas子集十六进制字符串,转换为十进制

在arduino中将十六进制字符串转换为十进制

在javascript中,如何将十进制(带小数点)转换为十六进制字符串

Java通用将字节数组转换为字符串(非十六进制,十进制)

将长十六进制字符串拆分为列值并转换为十进制

我将如何使用 js 将十进制数转换为十六进制字符串?

将十六进制十进制IP地址转换为c#中的点表示法十进制

Python将十进制转换为十六进制

PHP将十进制转换为十六进制

将十六进制转换为十进制

Dart:将十进制转换为十六进制

lex:将十六进制转换为十进制

将具有特殊字符的字符串转换为十六进制-C#