一、int(最简单的一种)
int数据类型在内存中占用了4个字节byte(4*8个bit比特)就是32个比特位。第一位代表int的正负,后31位存储数据。
当int取最大值时相当于31个1(1*2^30+1*2^29+1*2^28+....+1*2^0)可以转化为有32位切为1其他为0之后再减去1(1*2^31-1)。换算一下大概是21亿多。
二、float(单精度浮点型数据)
在说float之前先说一下二进制与十进制的小数部分的转化。
小数十进制转二进制:十进制的小数每次*2取整数部分的值作为当前的位数上的值。
例如0.25:0.25*2=0.5(整数部分为0,二进制第一位为0),0.5*2=1.0(整数部分为1切小数为0不继续了,二进制第二位为1)得出0.25用二进制表示为0.01。
小数二进制转十进制:与整数类似,当前位置*2的负数次方。例如0.01=0*2^0+0*2^-1+1*2^-2=0+0+1/4=0.25