这个问题可能是很基本的,但只有在使用Google的天,在C.符号int范围混乱
符号整数的我应有基本的了解其实有些人说有符号整数的范围有我在这里发布
- -32767〜32767和其他人说,它具有范围
- -32768至32767
让我们INT A = 5(签字/让我们只考虑1个字节)
* a = 5的第一个表示形式表示为00000101为正数,并且a = -5表示为10000101(因此范围-32767至32767表示对齐) (此处的msb /符号位为1/0该数字将是正/负,并且其余的(幅度位)不变)
* a = 5的第二表示被表示为00000101作为正数并且a = -5被表示为11111011 (msb是视为-128,其余的位被操纵以获得-5)(因此范围-32768到32767对齐)
所以我混淆了这两个东西。我的疑问是什么,是在C符号整数的实际范围,1),2)
您已经回答了您的问题。你在问什么?也许你想搜索“有符号整数的表示”。还要注意这两个假设实际上并不是完整的事实。 – Olaf
C中的int没有固定的指定大小。只有最小值被定义。在2的补码中,一个n比特类型的范围从'-2 ^(n-1)到'2 ^(n-1)-1' –
它依赖于底层平台,如果它使用[补码] ://en.wikipedia.org/wiki/Ones'_complement)或[two's complement](https://en.wikipedia.org/wiki/Two's_complement)(二进制补码是常用补码)。至于位的大小,它也取决于,而这些天'int'通常是32位。 –