数据类型扩展及面试题讲解
进制
整数拓展
-
二进制以0b开头
-
十进制
-
八进制以0开头
-
十六进制以0x开头,0-9,A~F
进制转换(8421法)
- 二进制转十进制:牢记2的各方次值,例1100B=0x2^0 + 0x2^1 + 1x2^2 + 1x2^3=12
- 十进制转二进制:分解十进制数为2的各方次相加,例46=1x2^2 + 1x2^3 + 1x2^5=101100B
- 二进制转八进制:将二进制数以每三个数为一组分开,例100110B=100|110=0x2^0 + 0x2^1 + 1x2^2| 0x2^0 + 1x2^1 + 1x2^2=4|6=64O(Q)
- 八进制转二进制:例176O=001|111|110=1111110B
- 二进制转十六进制:将二进制数以每四个数为一组分开,例1111011010B=0011|1101|1010=3|13|10=3DA,十六进制中A代表10,之后依次
- 十六进制转二进制:例4BC=0100|1011|1100=10010111100B
浮点数拓展(例银行业务),用BigDecimal,为数学工具类
- float字长有限、离散,会舍入误差,结果位一个大约的数,即接近但不等于
- 特别注意,最好完全避免使用浮点数进行比较,转而用类
字符拓展(字符的本质是数字)
- Unicode编码,例汉字”中“对应编码为20013,c3为更底层的方式
- 转义字符等
-
布尔值扩展
if(flag==true){} if(flag){}//两行代码等价