day02【进制、变量、类型转换、运算符

变量和数据类型

分类:
	(1)整数
        byte		1个字节		-128127
        short		2个字节		正负3万多
        int			4个字节		正负21亿		整数默认int类型
        long		8个字节		大概19位数字	   表示long类型数据后面需要加L/l
        long a = 100000l;
        
    (2)小数
        float		4个字节		表示float数据后面需要加F/f
        float a = 100f;
        	注意: 虽然float4个字节,但是由于采用科学计数法,取值范围远远超过long
        double		8个字节		小数默认double类型
                
    (3)字符:
		char		2个字节		
    (4)布尔:
		boolean		1个字节		取值为true或者false
		
        int a = 1;
        byte b = 2;
        short c = 9999;//极限
        a= a + b;
        System.out.println(a+b); //1+2
        System.out.println(a+c); //1+3
        System.out.println(b+c); //2+3

        a = a + b;
        System.out.println(a);
        // b = b + a; 报错  int 类型(4个字节),Byte 类型(1个字节) 所以无法兼容
        b = (byte) (b+a);
        System.out.println(b); //强制类型转换
        //b = b + b;  报错
        //c = c + c; 报错
        System.out.println("------");
        b = (byte)(b + b); //需要 强制类型转换
        //c = (short)(c +c ); //需要 强制类型转换

        System.out.println("满载的数据类型向下强转");
        c = (byte)(c + c);
        System.out.println(c);//30 输出30 在强制转换时 会截取多出的字节 (二进制数 八位等于1字节)

        float f= 1.1f;//数值后必须加f/F 否则报错
        // a = a + f;  报错  虽然都是四个字节  但是存储方式不同
        a = (int)(a + f); //6
        System.out.println(a); // 失精度  省略小数位,不发生四舍五入
        f = (float) (a + f); //7.1
        System.out.println(f);
        double d = 3.333;
        // f = f + d; 报错  float (四个字节) double (八个字节) 无法向下兼容
        f = (float)(f + d); //d 是double类型 截取无效的四个字节 强转为四个字节的 float类型

        char zf ='a';
        char ar = 97 ;
        System.out.println(zf); //a
        System.out.println((int)(zf));  //97
        System.out.println(ar); //a

		

运算符

数学运算符:

	(1)+: 加法运算
    (2)-: 减法运算
    (3)*: 乘法运算
    (4)/: 除法运算
    int a = 3;
		int b = 2;
		System.out.println(a + b);//3 + 2: 5 
		System.out.println(a - b);//3 - 2: 1 
		System.out.println(a * b);//3 * 2: 6 
		//3/2: int/int 结果必然是int类型
		System.out.println(a / b);//3 / 2: 1 
		
		//int * double / int ==> double /	int ==> double / double ==> double
		System.out.println((a*1.0) / b);//3.0 / 2 ==> 3.0/2.0 ==> 1.5 		

算术运算符

/*
	%运算符: 取余数(模)运算符
		被除数 ÷ 除数 = 商(/: 取的就是商) ......	余数(%: 取的就是余数)
		
	作用:
		1.判断数字的奇偶性: 
			数字%2 结果是0 说明数字是偶数
			数字%2 结果不是0 说明数字是奇数
			
		2.判断一个数字是否能够被另外一个数字整除
			结果为0: 说明可以整除
			结果不为0: 说明不可以整除
			
		3.可以把%和/结合使用计算数字的个位,十位,百位,千位
			比如有个int变量num,保存数字1234
			int num = 1234;
			个位: num%10
			十位: num/10%10
			百位: num/100%10
			千位: num/1000%10
*/
public class Demo11Operator {
	public static void main(String[] args){
		System.out.println(10%2);//0 说明10是偶数
		System.out.println(11%2);//1 说明11是奇数
		
		System.out.println(100%25);//0 说明100可以被25整除
		System.out.println(100%26);//22 说明100不可以被26整除
		
		System.out.println("---------------");
		int num = 1234;
		System.out.println(num%10);//4: 个位    1234 ÷ 10 = 商123 .... 余数4(%)
		//System.out.println(num/10);//123	    1234 ÷ 10 = 商123(/) .... 余数4(%)
		System.out.println(num/10%10);//3 十位  123 ÷ 10 = 商12(/) ...  余数3(%)
		
		//System.out.println(num/100);//12     1234 ÷ 100 = 商12(/) ... 余数34(%)
		
		System.out.println(num/100%10);//2 百位 12 ÷ 10 = 商1(/) ...  余数2(%)
		
		System.out.println(num/1000%10);//1 千位
	}
}

算术运算符+的特殊用法

/*
	+符号的作用
		1.数学中的加法运算(数字相加,字符相加)
		2.字符串的拼接(把两个字符串连在一起)
*/
public class Demo12Operator {
	public static void main(String[] args){
		System.out.println(5+5);//10
		/*
			int + char ==> int + int ==> int
			需要:
				char ==> int 查看ASCII码表 'A'对应65
		*/
		System.out.println(5+'A');//5 + 65: 70
		/*
			自动类型转换中:
				byte/short/char类型,只要参加运算,会自动转换为int类型
			char + char ==> int + int ==> int
			需要:
				char ==> int 查看ASCII码表 'A'对应65
				char ==> int 查看ASCII码表 'B'对应66
		*/
		System.out.println('A'+'B');//65 + 66: 131
		
		System.out.println("Hello"+"World");
		//"5+5="+5+5: 从左向右计算
		//先计算"5+5="+5: 此处+号代表字符串的连接 结果是"5+5=5"
		//然后"5+5=5"+5: 此处+号代表字符串的连接 结果是"5+5=55"
		System.out.println("5+5="+5+5);//5+5=55
		
		//()的优先级是比较高的,所以先计算5+5 结果10
		//然后"5+5="+10: 此处+号代表字符串的连接 结果是"5+5=10"
		System.out.println("5+5="+(5+5));//5+5=10
	}
}

自增自减运算符

package day02;

/*
	自增(++)自减(--)运算符(代码演示只演示++)
		1.作用: 让变量的值增加1(++)或者减少1(--)
		2.使用格式:
			(1)可以写在变量的前面: ++a,--a
			(2)可以写在变量的后面: a++,a--

		3.使用特点:
			(1)单独使用: ++/--自己独占一行,没有其它运算一起参与
				前++和后++,没有任何区别,都是让变量的值增加1
				前--和后--,没有任何区别,都是让变量的值减少1

			(2)混合使用: 和其它运算(赋值,打印等)一起
				前++/--: 先++/--,后再使用		先给变量的值增加(++)或者减少(--)1,然后再使用++/--后的结果
				后++/--: 先使用,然后++/--		先使用变量的值,再把变量的值	增加(++)或者减少(--)1


	重点:					----最常用的东西
		a++: 变量a的值增加1
		a--: 变量a的值减少1
*/
public class Demo15Operator {
    public static void main(String[] args){
        int a = 2;
        //++自己独占一行,没有其它运算一起参与
        a++;//a = a + 1 = 2 + 1
        System.out.println(a);//3

        int b = 2;
        //++自己独占一行,没有其它运算一起参与
        ++b;//b = b + 1 = 2 + 1
        System.out.println(b);//3

        System.out.println("-----------------");
        int c = 2;
		/*
			目前是++和赋值一起操作,属于混合运算
			而且++写在了c的前面,先把c的值增加1,
			c的值变为3,然后再把结果3赋值给变量d,d的值3
		*/
        int d = ++c;

        System.out.println(c);//3
        System.out.println(d);//3
        System.out.println("-----------------");

        int e = 2;
		/*
			目前是++和赋值一起操作,属于混合运算
			而且++写在了e的后面,所以先使用e的值(2)赋值给变量f,所以f的值是2,
			然后e的值再增加1,变成3
		*/
        int f = e++;

        System.out.println(e);//3
        System.out.println(f);//2

        System.out.println("-----------------");

        int x = 4; //5 6
		/*
			表达式(x++)+(++x)+(x*10)是从左到右计算的
			先计算(x++): 因为++在后面,先使用x的值4,然后x的值增加,变成5
			4 + (++x)+(x*10)
			接着计算(++x): 因为++在前面,先把x的值增加1,x变成6,然后再使用6
			4 + 6+(x*10)
			接着计算x*10 -->  6*10 结果: 60
			4 + 6 + 10 结果: 70
		*/
        int y = (x++)+(++x)+(x*10);//4+6+60=70
        System.out.println(x);//6
        System.out.println(y);//70
        


    }
}

总结

能够说出8种基本数据类型 
    四类八种:
		整数: byte,short,int,long
        小数: float,double
        字符:char
        布尔:boolean
        
能够完成变量的定义及输出
    int a = 10;

	int b;
	b = 20;

	int c,d,e;
	c = 30;
	d = 40;
	e = 50;

	int f = 60,g = 70;

    
能够知道类型转换的格式和顺序【小到大自动,大到小强制】
    double d = 6.6;
	int a = (int)d;
   
能够说出常见的运算符有哪几种
    数学运算符: +,-,*,/,%
    赋值运算符: +=,-=,/=,*=,%=
    自增,自减运算符: ++,--
        
能够知道除法和取余的区别
     /: 除法	求的是商
     %: 取余  求的余数
        
能够完成字符和字符串的加
    +:
		(1)数学中的加法运算(数字和数字,数字和字符,字符和字符)
        (2)字符串的连接: +的左侧或者右侧一点出现字符串,就无法进行数学意义上的加法运算,代表字符串的连接
            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

userzxz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值