数据的拓展
整数拓展
public class Day08 {
public static void main(String[] args) {
//整数拓展; 进制 二进制0b 十进制 八进制0 十六进制0x
int i3=0b10;//二进制
int i1=10;//十进制
int i2= 10;// 八进制0 0在数字前面
int i4=0x10;//十六进制 0x在数字前面
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
浮点数拓展
浮点数是有限的,也是离散的,它存在舍入误差,它大约但又不等于,它接近那个值但又不等于那个值。
-
最好完全避免使用浮点数进行比较
//浮点数拓展
//float
//double
//BigDecimal 数学工具类
float f=0.1f; //0.1后面要加f 跑出来的值是0.1
double d=0.1d; //0.1后面要加d 跑出来的值是0.1
System.out.println(f);
System.out.println(d);
System.out.println(f==d);//在这里float出来的0.1不等于double出来的0.1 ==号判断它们是否相等 (错误)
float d1=645599232323232323232323232322f;
float d2=d1+1;
System.out.println(d1==d2);//(正确)
字符拓展
强制转换输出里面要+(int)
-
例如System.out.println((int)c1);
强制转换可以把字符转换为数字,所有字符本质都是数字。
char类型会涉及一个编码问题,Unicode编码可以处理各种语言的文字,占两个字节,它可以从0~65536。Unicode里面有一个表,里面的数字对应一个字符:97=a 20013=中。
//字符拓展
char c1='a'; // 值为 97
char c2='中';// 值为 20013
System.out.println((int)c1);//强制转换
System.out.println((int)c2);//强制转换
System.out.println(c1);
System.out.println(c2);
char c3='\u0061'; //输出值为 a
System.out.println(c3);
转义字符
//转义字符
// \t 代表空格
// \n 代表换行
// 转义字符有许多,需要的话网上查找
System.out.println("hello\tworld"); //空格
System.out.println("hello\nworld"); //换行
// 布尔值拓展
boolean flag=true;
if (flag==true){} //新手程序员使用 上面跟下面的表达意思一样
if (flag){} //代码要精易读