我们有一个实例,其中赋值给整数的值大于int max值(2,147,483,647)。它不会抛出错误,它只是为整数分配一个较小的数字。这个数字是如何计算的?
这已经通过将int更改为long来修复,但我对如何计算较小的值并将其分配给int感兴趣。
答案 0 :(得分:2)
int包含一个32位数字,这意味着它有32个二进制数字0或1(第一个数字表示加0表示加减1表示),例如:
<form name="customer" id="customer" method="post" action="step2">
<button type="submit" class="btn btn-primary next-step">Continue</button>
</form>
所以,如果你增加1 in decimal == 0000 0000 0000 0000 0000 0000 0000 0001 as int32 binary
2 147 483 647 == 0111 1111 1111 1111 1111 1111 1111 1111
,你会得到下一个结果:
int.MaxValue
在two's complement表示中,此二进制数等于2 147 483 648 == 1000 0000 0000 0000 0000 0000 0000 0000
或int.MinValue
答案 1 :(得分:0)
int.MaxValue: 2,147,483,647
循环中的逻辑跟踪找到的最小数字。你可以使用int.MaxValue来启动非常高的值,然后任何更低的数字都是有效的。
示例代码:
using System;
class Program
{
static void Main()
{
int[] integerArray = new int[]
{
10000,
600,
1,
5,
7,
3,
1492
};
// This will track the lowest number found
int lowestFound = int.MaxValue;
foreach (int i in integerArray)
{
// By using int.MaxValue as the initial value,
// this check will usually succeed.
if (lowestFound > i)
{
lowestFound = i;
Console.WriteLine(lowestFound);
}
}
}
}
输出
10000
600
1