整数に割り当てられる値がintの最大値(2,147,483,647)より大きい場合があります。それはエラーを投げることはありません、ちょうど整数に小さい番号を割り当てます。この数字はどのように計算されますか?割り当てられた値がC#のint max値より大きい場合、整数値はどのように決定されますか?
これはintをlongに変更することで修正されましたが、もっと小さな値がどのように計算され、intに割り当てられるのか興味があります。
整数に割り当てられる値がintの最大値(2,147,483,647)より大きい場合があります。それはエラーを投げることはありません、ちょうど整数に小さい番号を割り当てます。この数字はどのように計算されますか?割り当てられた値がC#のint max値より大きい場合、整数値はどのように決定されますか?
これはintをlongに変更することで修正されましたが、もっと小さな値がどのように計算され、intに割り当てられるのか興味があります。
int.MaxValue: 2,147,483,647
ロジックinループは、見つかった最も低い番号を追跡しています。あなたは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
INT手段は32ビットの数値が含まれ、それが0または1(最初の桁手段の32進数字を有し、プラス0とマイナス用1のために)、例えば:あなたはint.MaxValue
をインクリメントしますのであれば
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
、あなたは次のRESUを取得しますLT:
2 147 483 648 == 1000 0000 0000 0000 0000 0000 0000 0000
two's complement表現では、この2進数int.MinValue
または-2 147 483 648
int.MaxValue + 1 == int.MinValue –
'Int16.MaxValue OR Int32.MaxValueをOR Int64.MaxValue' – Sherlock
HTTPに等しいです。 //stackoverflow.com/questions/33098378/why-2-why-not-3-or-1/33098714#33098714 –