32位有符号整数的最小值是多少?

jav*_*ava 16 int signed 32-bit minimum

32位有符号整数的最小值是什么,恰好是在[本网站]创建帐户的安全性"挑战"问题(编辑:链接现在是恶意软件)(不要判断我只是好奇和无聊).

我以为他们说的是一个典型的32位int,它可以存储大到的数字2,147,483,647.但是,当我尝试-2147483647它时,我说错了.我尝试了几种变体,-2,147,483,647但没有任何作用......

我是否误解了这个问题,或者网站有什么问题吗?

PS我也按照建议尝试了-2,147,483,648

这是一张照片 在此输入图像描述

Tim*_*fey 31

最常用的整数大小是32位.最后一位用于区分正数和负数.如果未设置最后一位,则该数字为正数.因此,最大正数0x7FFFFFFF= (1<<31)-1= 2147483647(最后一位未设置).

对于负数,两个补码表示法被广泛使用.您可以通过反转其所有位并添加1来识别正数的对应部分.因此,最大整数的对应部分是0x80000001,但它不是最小数字.

二进制补码表示法中的最小数字是0x80000000= -2147483648.关于这个数字的一​​个有趣的事实是它等于它自己的补码,即反转所有的比特结果0x7FFFFFFF并加上1 0x80000000个数,这等于原始数.

更多关于维基百科中的两个补码表示法.


Zac*_*ham 7

有符号的32位整数可以归结为 -2,147,483,648