基础篇 《一》
Java数据类型
- Java对整型有三种不同表现形式
- 十进制
- 八进制
- 十六进制
进制的基本类型转换
- 十进制:除2取余数
- 二进制转换十进制:乘以2取余数
- 八进制、二进制互转:一位变三位、三位变一位
- 十六进制、二进制互转:一位变四位、四位变一位
数值转换练习
练习1:将二进制数1101.101转换为十进制数。
解:整数部分
1101 = 1x2^3 + 1x2^2 + 1x2^1 + 2^0
= 8 + 4 + 1
= 13
小数部分
101 = 1x2^-1 + 0x2^-2 + 1x2^-3
= 0.5 + 0.125
= 0.625
所以十进制数为:13.625练习2:将十进制整数105.625转换成二进制数
解: 整数部分:
105 ÷ 2 = 52 … 1
52 ÷ 2 = 26 … 0
26 ÷ 2 = 13 … 0
13 ÷ 2 = 6 … 1
6 ÷ 2 = 3 … 0
3 ÷ 2 = 1 … 1
从下往上取余数得:101001
小数部分:
0.625 x 2 = 1.250 取整数 1
0.250 x 2 = 0.5 取整数 0
0.5 x 2 = 1
从上往下取整数得:101
所以转换的二进制数为:101001.101练习3:将1011101001.110101转换为16进制。
解: 整数部分:
1011101001被拆分为 10 ,1110 ,1001
10 不够四位,前面补两个0为:0010 = 2
1110 = 14 = E
1001 = 9
小数部分:
110101被拆分为 1101 , 01
1101 = 13 = D
01 不够四位后面补两个0 为 0100 = 4
所以转换的16进制为:2E9.D4
基本类型转换
- 语法
- 自动类型转换
- 在某种系统会自动完成类型转换也称隐含转换(implicit casting)
- 两种类型兼容
- 目标类型大于源类型
- 对于表达式,如果操作数为Double类型 ,整个表达式可提升为double类型
- 在某种系统会自动完成类型转换也称隐含转换(implicit casting)
- 强制类型转换(Explicit casting)
- 在一定条件下程序员手动进行转换
- 两种类型兼容
- 一般目标类型小于源类型
- 在一定条件下程序员手动进行转换
- 要点
- 强制类型转换会丢失精度
- 自动类型转换