C#中积分类型的最小值和最大值

Jon*_*han 1 c# math types int32 integral

什么是数学公式,使用您的计算器计算积分类型的MIN和MAX值.我知道你可以使用Integer.Max或Integer.Min等,或者在msdn上查找,但我想知道如何计算它.

Luk*_*keH 12

对于无符号类型:

  • 最小值= 0
  • 最大值=(2**(位数)) - 1

因此,对于UInt32:

Min value = 0

Max value = (2 ** 32) - 1
          = 4294967296 - 1
          = 4294967295
Run Code Online (Sandbox Code Playgroud)

对于签名类型:

  • 最小值= 0 - (2**(位数 - 1))
  • 最大值=(2**(位数 - 1)) - 1

因此,对于Int32:

Min value = 0 - (2 ** (32 - 1))
          = 0 - (2 ** 31)
          = 0 - 2147483648
          = -2147483648

Max value = (2 ** (32 - 1)) - 1
          = (2 ** 31) - 1
          = 2147483648 - 1
          = 2147483647
Run Code Online (Sandbox Code Playgroud)