gpt4 book ai didi

c# - Int64.MinValue 的十六进制文字

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:22 25 4
gpt4 key购买 nike

我正在尝试将 Int64.MinValue (-0x8000000000000000) 写为负十六进制数,但 Visual Studio 2010 不允许我这样做,因为它假定 0x8000000000000000 必须是 ulong 文字,并且无符号数不能为负数。有解决方法吗?我注意到在另一个线程中使用了 checked 关键字,但它并没有解决这个问题。在这种情况下,我真的很想使用十六进制表示法而不是十进制。

有趣的是,使用十进制记数法不会发生这种情况。

最佳答案

这展示了几种可能的实现方式:

static void Main(string[] args)
{
Int64 minValue = -9223372036854775808;
Int64 minValueViaHex = Int64.Parse("8000000000000000", NumberStyles.AllowHexSpecifier);
Int64 minValueViaHexInline = unchecked((long)0x8000000000000000L);

Console.WriteLine("Decimal match : {0}", Int64.MinValue == minValue);
Console.WriteLine("Via Hex match : {0}", Int64.MinValue == minValueViaHex);
Console.WriteLine("Via Hex inline: {0}", Int64.MinValue == minValueViaHexInline);
}

这个输出:

Decimal match : True
Via Hex match : True
Via Hex inline: True

关于c# - Int64.MinValue 的十六进制文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22482555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com