当指定的值大于C#中的int max值时,如何确定整数值?

时间:2016-07-22 08:56:43

标签: c# .net

我们有一个实例,其中赋值给整数的值大于int max值(2,147,483,647)。它不会抛出错误,它只是为整数分配一个较小的数字。这个数字是如何计算的?

这已经通过将int更改为long来修复,但我对如何计算较小的值并将其分配给int感兴趣。

2 个答案:

答案 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