什么是 32 位有符号整数的最小值,恰好是在 [本网站] 上创建帐户的安全“挑战”问题(编辑:链接现在是恶意软件)(不要判断我只是好奇和无聊)。
我以为他们在谈论一个典型的 32 位 int,它可以存储2,147,483,647
. 但是当我尝试时-2147483647
,它说我的问题错了。我尝试了几种变体,例如-2,147,483,647
但没有任何效果...
我误解了这个问题还是网站有问题?
PS我也按照建议尝试了-2,147,483,648
这是一张图片
最常用的整数大小是 32 位。最后一位用于区分正数和负数。如果最后一位未设置,则该数字为正数。因此,最大正数为0x7FFFFFFF
= (1<<31)-1
= 2147483647
(最后一位未设置)。
对于负数,二进制补码表示法被广泛使用。您可以通过反转其所有位并加 1 来识别正数的对应物。因此,最大整数的对应物是0x80000001
,但它不是最小数。
二进制补码表示法中的最小数字是0x80000000
= -2147483648
。关于这个数字的有趣事实是它等于它自己的补码,即反转所有位的结果0x7FFFFFFF
并加 1 产生0x80000000
,这等于原始数字。
更多关于wikipedia中的补码表示法。
有符号的 32 位整数可以下降到-2,147,483,648