02-数据类型和运算符
1. 数据的存储原理
1.1. 二进制
二进制只有 0 和 1,按照逢 2 进 1 的方式表示数据。
00000001
00000010
00000100
00000101
计算机的数据都是用二进制存储的。例如:文本、图片、音频、视频等文件。
- 字符的二进制值,可查看 ASCII 编码表(规定了英语、数字、西欧字符对应的二进制数字编号)
- 图片有无数像素点组成,每个像素点的数据用
0~255*255*255表示颜色。 - 音频通过横纵坐标表示。

1.2. 除二取余法
十进制转化二进制算法
1.3. 字节
计算机底层表示数据的最小单元是一个字节 Byte 简称 B
一个字节=8 个二进制位 bit 简称 b
- 1 B=8 b
1.4. 二进制转十进制
1.5. 十进制转二进制
1.6. 二进制和八、十六进制转化
为了便于观察和表示二进制,推出了八进制和十六进制。
1.7. 计算机的数据存储单位
- 1 B = 8 b (字节,计算机存储数据的最小组成单元)
- 1 KB=1024 B
- 1 MB=1024 KB
- 1 GB=1024 MB
- 1 TB=1024 GB
2. 数据类型
Java 数据类型分为基本数据类型和引用数据类型。
2.1. 基本数据类型
基本数据类型:4 大类 8 种
| 数据类型分类 | 数据类型 | 内存占用 (Bypes) | 数据范围 |
|---|---|---|---|
| 整型 | byte | 1 | -128~127 |
| 整型 | short | 2 | |
| 整型 | int (整型默认类型) | 4 | 10 位数,大概 21 亿多 |
| 整型 | long (10 L 10 l) | 8 | 19 位数 |
| 浮点型 (小数) | float (10.1 F 10.1 f) | 4 | |
| 浮点型 (小数) | double (浮点型默认类型) | 8 | |
| 布尔型 | boolean | 1 | true, false |
| 字符型 | char | 2 | 0-65535 |
2.2. 引用数据类型
3. 类型转化
3.1. 自动类型转化
类型范围小的变量,可以直接赋值给类型范围大的变量。
3.2. 表达式的自动类型转化
- 表达式中,小范围的类型自动转为大范围的类型。
- 表达式中 byte、short、char 是直接转成 int 类型参与计算的。
- 表达式的最终结果的类型,是最高类型。
bypte、short、char -> int -> long -> float -> double
3.3. 强制类型转化
类型范围大的字面量、变量,直接赋值给类型范围小的变量,会报错。
语法:
数据类型 变量 = (数据类型) 字面量、变量;
注意:
- 可能出现数据丢失
- 小数强制类型转化整数是直接截断小数保留整数的。
4. 运算符
| 符号类型 | 符号 | 作用 | 说明 |
|---|---|---|---|
| + | 如果和字符串运算,作用是连接字符串 | ||
| - | |||
| * | |||
| / | Java 中两个整数相除的结果还是整数 | ||
| % | |||
| ++ | 只能操作变量,不能操作字面量。表达式中放在变量前后的区别 | ||
| -- | |||
| 赋值运算符 | = | 从右向左看 | |
| 扩展赋值运算符 | += | 扩展赋值运算符隐含了强制类型转化 | |
| -= | |||
| *= | |||
| /= | |||
| %= | |||
| 关系运算符 | > | ||
| >= | |||
| < | |||
| <= | |||
| == | |||
| != | |||
| 逻辑运算符 | & | ||
| | | |||
| ! | 开发中用常用 | ||
| ^ | |||
| && | 短路与,运算效率更好,开发中用常用 | ||
| || | 短路或,运算效率更好,开发中用常用 | ||
| 三元运算符 | 条件表达式 ? 值 1 : 值 2 | ||
运算符的优先级
数值拆分案例
公式总结:
个位 :数值 % 10
十位 :数值 / 10 % 10
百位 :数值 / 10 / 10 % 10
千位 :数值 / 10 / 10 / 10 % 10;
...
自增自减案例