C++基础总结(1)--基本数据类型范围

unsigned   int   0~4294967295   
int   2147483648~2147483647 
unsigned long 0~4294967295
long   2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161

__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808

unsigned __int64的最大值:18446744073709551615


Unsigned short short的取值范围的计算

 答:short在计算机中是以16位二进制补码保存。因为整数的补码是其本身,所以unsigned short的最小值为00000000000000,而它的最大值表示为1111111111111111,即为2^16-1=65535。而short用补码表示的时候第一位用来表示符号位,1000000000000000000000000000000都是表示的。(最前面的符号位1表示负数,0表示正数)

表示所以表示正数的时候范围从0000000000000000~0111111111111111,即[0,32767].当表示负数的时候,可以从1000000000000000表示到1111111111111111(此处为原码表示),即[-32767,-0],补码表示负数即将其原码除符号位以外的数值位取反+1.-32767的补码为1000000000000001,但100000000000000000(-0)的补码为00000000000000000的补码一样。我们知道0的补码只有一个,任何一个原码在转变成补码时都不可能转变成10000000000000000,所以人们规定将1000000000000000编码成2^15=32768.                 


原文地址:https://www.cnblogs.com/gaot/p/7709704.html