INT型:
在一般的电脑中,int字占用4字节,32比特,数据范围为-21474836482147483647[-2^312^31-1]
int字分为有符号与无符号两种:
1、有符号记为int型,其中还包括short、long等也可以表达整型,有符号int型的存储形式为补码形式。
2、无符号记为unsigned int型,数据范围为[0~2^32-1]
当将int型与unsigned int型的混合数据一起计算的时候,最终结果会返回unsigned int 型,机器会将补码形式的int型数据当作源码与unsigned int型的源码一同计算。
移位操作:
因为数据存储在机器中为二进制形式,因此当左移位时,符号位不变,除符号位以外最高位舍弃,其余位依次向高位移一位,最低位补0,因为二进制一位位权为2^n,因此相当于将原数乘以了2。
同理,当右移位时,符号位不变,最低位舍弃,其余位依次向低位移一位,除符号位以外最高位补0,相当于将原数除以了2。
溢出:
对于32位系统,最大值为2^32-1,溢出后会对将得数减去最大值后输出。
FLOAT/DOUBLE型:
浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位二进制指数和一个 23 位尾数。
浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。
其中,数符占 1 位,表示数的正负。指数符占 1 位,表示指数的正负。尾数表示浮点数有效数字,0.xxxxxxx, 占八位。指数存指数的有效数字。指数占多少位,尾数占多少位,由计算机系统决定。
float与double的区别主要是位数不同,double类型与float类型表示方式基本一样,只不过从32位变成了64位
一般,float的指数位为8位,尾数位为23位。double的指数位为11位,尾数位为53位。
当计算时,有float型和double型混合运算时,浮点数都会转换成double型去计算,结果也会保存为double型
溢出:
小于最小负数,大于最大正数的区间,和小于最大复数,大于最小正数的区间,视为溢出。
CHAR型:
字符是以整型对应的ASCII码存储的,在计算时不加引号会以对应的ASCII转化为int型计算。