基本类型
如果你看过其他教学机构的教材,教变量的时候会在开始的时候就告诉你八个基本数据类型
- byte(字节)
- short(短整型)
- int(整型)
- long(长整型)
- float(单精度浮点型)
- double(双精度浮点型)
- char(字符)
- boolean(布尔值)
因为前面几个用得少所以没讲,但为了后面的内容需要多列出几种类型才好理解
整型
int 类型占4个字节,往上数short占两个字节,再往上数byte占一个字节
往下数long占8个字节
整型不同于浮点型,他们不采用科学计数法的忽略精度,他们记录的数值就是精确值
这一部分无需多讲,和int没多大区别而且少用
浮点型
首先,双精度浮点型占64位,一符号位,11指数位,52位有效数字
单精度浮点型占32位,一符号位,8指数位,23位有效数字
我们尝试赋值一个float
float f=12.0;
你会发现不可赋值。因为他们的储存方式大有不同
用int给long赋值,无非在前面加0,反过来也就是在前面截断
而他们的指数位不同,直接赋值就会出现问题,所以你需要些许操作
强转可以截断前面的位,可以把double经过位移以后赋给float
而string的记录值的方式和他们本质更加不同,所以强转无法把int转成string
不使用强转,正确的赋值操作是在末尾加个f。这个f类似于双引号的声明,并不会处理进数值
float f=12.0f;
16进制和8进制
除了在末尾加f可以声明这个数值是单精度浮点型以外
还可以在开头加0表示8进制数,0x表示16进制数。2进制和4进制不能用
qq登录时qq号可以写0x+你16进制的qq号
[QQ是用C++写的,不过这个系列是程序基础,大部分语言基础部分大体都是一样的。]
无符号整型
数据类型的第一位是保存符号的。对于整形(int,short,long)可以在前面加上u表示无符号整性
用4bit举例: 01020304
01表示正负号,后面3个最大表示7。整个的表示值范围就是[-7~+7]
无符号范围就是[0-15],正数范围变大,但不能表示负数了。
另外仔细看,4bit最大值就是4个bit都是1的情况。这时候表示的数就是1+2+4+8=15=24-1
为什么4bit的最大值不是24呢,我们看他最小值,都是0的情况:0+0+0+0=0.
也就是说计算机计数都是从0开始的。所以最大值都是2n-1.
一核有难多核围观,指大部分游戏是单线程,不支持多核心CPU
包括后面学的循环,数组,任务管理器上的计数都是以0开头。