- 比特列标记类型,解释成不同数据
- 整数
- excess-3(加三码)
- 二进制
- 1983, 任天堂计算机8位表示整数。目前32位和64位表示整数
- 八进制(3位切分), 十六进制(4位切分)
- 实数
- 单独记小数点左移位数
- 前位段表示数,后位段表示小数点位置
- 浮点数,也可表示大整数
- IEEE 754
- 有误差
- 第一位符号
- 中8位是指数(-127-128), 负向左移正向右移,-127代表0, 128代表无限大
- 后23位是尾数,从左到右代表1/2, 1/4, 1/8…
- 二-十进制码
- 发展
- 变量名表示类型
- 声明类型
- 隐式类型转换
- 整数+浮点数,Fortran出错,c都转换为浮点数, 整数除法舍弃小数
- ML(1973年)中, 整数除法用x div y, 小数除法用 x / y
- Python3.0(2008年)中, 不带舍去除法用 x / y, 带舍去除法用 x // y
- 用户定义类型
- C中的结构体, C++中函数成为类型,用户实现的类型称为类
- 类型即功能
- 接口
- 异常成为类型
- 类型实现所有功能
- 未实现。类型一致,功能就成立,没有bug
- 类型不能表达的:数据处理时间,处理用内存,是否可以在线程中操作等
- 总称型(部分可变类型)
- 类型为参数创建类型,C++的模板,Java的泛型,Haskell的类型构造器
- 动态类型
- 类型信息和数值看作整体, 静态类型把变量名、内存地址、内存里的内容类型作为整体
- 内存中同等类型对待,其中再细分类型
- 灵活,运行时确定类型,但不能执行前编译检查bug
- 类型推导