gpt4 book ai didi

.net - 为什么我的 .net Int6 4's behaves as if they were Int32' s?

转载 作者:行者123 更新时间:2023-12-02 21:01:21 25 4
gpt4 key购买 nike

我在 .net 程序中目睹了奇怪的行为:

Console.WriteLine(Int64.MaxValue.ToString());
// displays 9223372036854775807, which is 2^63-1, as expected

Int64 a = 256*256*256*127; // ok

Int64 a = 256*256*256*128; // compile time error :
//"The operation overflows at compile time in checked mode"
// If i do this at runtime, I get some negative values, so the overflow indeed happens.

为什么我的 Int64 的行为就像 Int32 的一样,尽管 Int64.MaxValue 似乎确认它们使用的是 64 位?

如果相关的话,我使用的是 32 位操作系统,并且目标平台设置为“任何 CPU”

最佳答案

您的 RHS 仅使用 Int32 值,因此整个操作是使用 Int32 算术执行的,然后是 Int32 结果 提升为 long。

将其更改为:

Int64 a = 256*256*256*128L;

一切都会好起来的。

关于.net - 为什么我的 .net Int6 4's behaves as if they were Int32' s?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/829555/

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