integer - int32最大值是多少?

  显示原文与译文双语对照的内容

我永远都记不住那个数字。 我需要一个内存规则。

时间:

它是 2,147,483,647 。记住它的最简单方法是通过一个纹身。

我可以想到的最正确的答案是 Int32.MaxValue

如果你认为在 base 10中的值太难记住,请尝试基 2: 1111111111111111111111111111111

它是 10位数字,所以假设它是一个电话号码( 假设你在美国) 。 214 -748-3647.不推荐调用它。

不要把它看作一个大数字,试着把它分解并寻找相关的想法例如:

  • 2 最大斯诺克中断( 最大中断为 147 )
  • 4 年( 48月)
  • 3 年( 36月)
  • 4 年( 48月)

上面的数字应用于最大负数;正数是负数。

也许上面的崩溃对你来说不再是个难忘的事情了,但希望你能想出一些想法 !


2^(x+y) = 2^x * 2^y

2^10 ~ 1,000
2^20 ~ 1,000,000
2^30 ~ 1,000,000,000
2^40 ~ 1,000,000,000,000
(etc.)

2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512

因此,2 ^31 ( 签名的int最大) 是 2 ^30 ( 大约 1亿左右) 时间 2 ^1 ( 2 ),或者约 2亿。 2 ^32是 2 ^30 * 2 ^2或者约 4亿。 这种近似方法精确到大约 2 ^64 ( 错误增长到大约 15% ) 。

如果你需要一个精确的答案,那么你应该调出一个计算器。

方便的word-aligned容量近似值:

  • 2^16 ~= 64//uint16
  • 2^32 ~= 4亿//uint32,IPv4,unixtime
  • 2^64 ~= 16 quintillion ( 又名 16亿亿或者一千万亿)//uint64,"bigint"
  • 2^128 ~= 256 quintillion quintillion ( 又名 256万亿万亿万亿)//IPv6,GUID

这就是我记得 2147483647的方式:

  • 214 - 因为 2.14大约是 pi-1
  • 48 = 6 *8
  • 64 = 8 *8

水平写入:


214_48_64_
and insert:
 ^ ^ ^
 7 3 7 - which is Boeing's airliner jet (thanks, sgorozco)

现在你得到了 2147483647.

希望这至少有一点帮助。

只需使用任何像样的计算器,用十六进制模式输入" 7",然后使用 switch 。

2147483647.

无论如何,使用这个 正规表达式 ( 它决定字符串是否包含不大于 Int32.MaxValue的十进制形式的负整数)

"[0-9]{1,9}|[0-1][0-9]{1,8}|20[0-9]{1,8}|21[0-3][0-9]{1,7}|214[0-6][0-9]{1,7}|2147[0-3][0-9]{1,6}|21474[0-7][0-9]{1,5}|214748[0-2][0-9]{1,4}|2147483[0-5][0-9]{1,3}|21474836[0-3][0-9]{1,2}|214748364[0-7]{1,1}"

也许它会帮助你记住

最大负( 32位) 值:-2147483648
( 1 <<31 )

最大的正( 32位) 值:2147483647
~(1 <<31 )

记忆:drunk醉酒 AKA"

醉酒=========饮酒年龄为 21
AK ============ AK 47
============= 4 ( A 和 4看起来相同)
饥渴=========互联网规则 34 ( 如果存在的话,有色情的)

21 47 4 ( 年份年份) 3 ( 年份年份) 4 ( 年)
21 47 48 36 48

...