Java学习笔记05程序设计基础二_20200125

第五章 Java程序设计基础二

01 将MB转换为字节,将字节转换为MB

将MB转换为字节,将字节转换为MB   用 + - *  /
		//计算MB有多少字节
		//1mb = 1024kb
		//1kb = 1024byte
		int mb = 16;
		int b = mb * 1024 * 1024;
		System.out.println(b);
		
		//计算字节是多少mb
		int c = 16777216;
		//int d = c / 1024 /1024;
		int d = c / (1024 * 1024);
		System.out.println(d);

在这里插入图片描述

02 算术运算符

		// 算术 运算符: 加减乘(TUXV)除
		int a = 5;
		// a = a + 5;
		a += 5; // a = a + 5;
		System.out.println(a); // 10
		a *= 10; // a = a * 10;
		System.out.println(a);// 100
		a -= 5; // a = a - 5;;
		System.out.println(a);// 95
		a /= 5; // a = a / 5;
		System.out.println(a);// 19

在这里插入图片描述

单目运算符
在这里插入图片描述

03 自增自减运算符

		int x = 3;
		x++; //自增运算符,相当于x = x +1;
		System.out.println(x);//4
		
		x--;//自减运算符,相当于x = x -1;
		System.out.println(x);//3
		
		System.out.println("******************************");
		
		//++在前,变量先自增,然后参与其他运算
		int a = 3;
		int b = ++a;//a先自增,再赋值给b。 相当于a++; int b = a;
		System.out.println(a);//4
		System.out.println(b);//4

		//++在后,变量先参与其他运算,然后自增
		int c = 3;
		int d = c++;//c先赋值给d,然后c再自增。 相当于int d = c; c++;
		System.out.println(c);//4
		System.out.println(d);//3	

在这里插入图片描述

04 比较运算符

比较运算符的结果为boolean类型的值。(true,false)

在这里插入图片描述
比较运算符有:大于(>),小于(<),大于等于(>=),小于等于(<=),不等于(!=)

		//判断是否相等使用==,注意与赋值运算符=的区分
		System.out.println(1 == 2);//false,假
		System.out.println(1 == 1);//true,真
		
		int a = 1;
		int b = 1;
		boolean c = a ==b; //相当于boolean c = true;
		System.out.println(c);//true
		
		System.out.println("********************************");
		//比较运算符有:大于(>),小于(<),大于等于(>=),小于等于(<=),不等于(!=)
		System.out.println(1>2);//false
		System.out.println(1<2);//true
		System.out.println(1>=1);//true
		System.out.println(2>=1);//true
		System.out.println(1!=2);//true

在这里插入图片描述

05 逻辑操作符

逻辑运算符两边的数据都是boolean类型的,结果也是boolean类型的。
短路是指,当结果已经明确时,就停止往下执行了。
对于&&来说,当第一个表达式为false,结果就是false,第二个表达式就不会执行。
对于||来说,当第一个表达式为true,结果就是true,第二个表达式就不会执行。

短路与

		//短路与操作符&&,只有操作符&&两边都是true,结果才是true
		System.out.println(true && true); //true
		System.out.println(true && false);//false
		System.out.println(false && true);//false
		System.out.println(false && false);//false

在这里插入图片描述

短路或

		//短路或操作符,只要操作符||一边为true,结果就是true
		System.out.println(true || true);//true
		System.out.println(true || false);//true
		System.out.println(false || true);//true
		System.out.println(false || false);//fasle

在这里插入图片描述

	//短路是指,当结果已经明确时,就停止往下执行了
	//对于&&来说,当第一个表达式为false,结果就是false,第二个表达式就不会执行
	//对于||来说,当第一个表达式为true,结果就是true,第二个表达式就不会执行
		int i = 10;
		System.out.println(true || ++i == 11);//
		System.out.println(i);//10

在这里插入图片描述

& 和 | 跟&&和|| 类似,只不过不是短路的
操作符两边的表达式都执行

		int j = 10;
		System.out.println(true | ++j == 11);//true
		System.out.println(false & ++j == 12);//false
		System.out.println(j);//12

在这里插入图片描述

异或^
异或^,当操作符两边不同时结果为true,当两边相同时结果为false

		System.out.println(true ^ false);//true
		System.out.println(false ^ true);//true
		System.out.println(true ^ true);//false
		System.out.println(false ^ false);//false
		

在这里插入图片描述

非!,表示取反

		System.out.println(!false);//true
		System.out.println(!true);//false

在这里插入图片描述

06 三元操作符

		//三元运算符
		int age = 18;
		System.out.println(age >= 18 ? "成年了" : "未(FII)成年"); //成年了
		
		age = 12;
		System.out.println(age >= 18 ? "成年了" : "未成年"); //未成年
		
		String str = age >= 18 ? "成年了" : "未成年";
		System.out.println(str);//未成年	

在这里插入图片描述

07 位操作符

位与,两个数都是 1则为1,否则为0
位或,两个数只要有一个为1则为1,否则为0
位异或,两个数不同则为1,否则为0

		//位与,两个数都是 1则为1,否则为0
		//0010
		//0011
		//0010
		System.out.println("2 & 3:" + (2 & 3));//2 & 3 : 2
		
		//位或,两个数只要有一个为1则为1,否则为0
		//0010
		//0011
		//0011
		System.out.println("2 | 3:" + (2 | 3));// 2 & 3 : 3
		
		//位异或,两个数不同则为1,否则为0
		//10
		//11
		//01
		System.out.println("2 ^ 3:" + (2 ^ 3));//2 ^ 3 : 1

在这里插入图片描述
移位运算,取反~,左移<<,右移动>>,无符号右移>>>
二进制在计算机中是以补码形式存在的
原码,反码和补码
正数的原码反码和补码是一样的

		//-2人原码:   10000000000000000000000000000010
		//-2的反码:   11111111111111111111111111111101
		//-2的补码:   11111111111111111111111111111110
		//负数的反码是原码的按位取反(除云符号位)
		//负数的补码是反码+1
		//Integer.toBinaryString将10进制转变换成二进制字符串
		System.out.println(Integer.toBinaryString(-2));
		//   1 29个0  10? no    应为:11111111111111111111111111111110
		

在这里插入图片描述

取反符号位也取反

System.out.println(Integer.toBinaryString(-3));
//11111111111111111111111111111101
//取反:符号位也取反
System.out.println(~-3);                       //00000000000000000000000000000010

在这里插入图片描述
移位
移位是按照补码来进行的
左移,空位以0补,相当于乘2
右移,空位以位补,相当于除2

		//移位是按照补码来进行的
		//左移,空位以0补,相当于乘2
		System.out.println(2 << 1);
		//2的补码   00000000000000000000000000000010
		//2左移1位  00000000000000000000000000000100
		//
		//右移,空位以位补,相当于除2
		//2的补码   00000000000000000000000000000010
		//2右移1位  00000000000000000000000000000001
		System.out.println(2 >> 1);
		
		
		//-2的补码     11111111111111111111111111111110
		//-2左移一位   11111111111111111111111111111100
		System.out.println(-2 << 1);//-4
		//-2的补码     11111111111111111111111111111110
		//-2右移一位   11111111111111111111111111111111
		System.out.println(-2 >> 1);//-1

在这里插入图片描述

08 练习

1.将分钟数转换为小时和分钟。

		int minutes = 150;//分钟数
		//两个int进行算术运算,结果仍然是int
		int hours = minutes / 60; //计算多少个小时
		int ms = minutes % 60; //计算还剩(TUXJ)下多少分种
		System.out.println(hours + "小时零" + ms + "分钟");
		

在这里插入图片描述

错误示例

		//错误示例
		int minutes = 150; //分钟数
		float hours = minutes / 60; //2.0
		System.out.println(hours + "小时");  
		//2.0小时,   与预期不符,预期是 2.5

能显示小数的代码为:

		int minutes = 150; //分钟数
		float hours = minutes / 60f;
		System.out.println(hours);  //2.5

在这里插入图片描述

2.根据半径计算圆的周长和面积

		int r = 3;//半径
		
		//声明PI为常量
		final double PI = 3.14;
		//圆的周长2πr
		double x = 2 * PI * r;
		System.out.println(x);
		//圆的面积πr2平方米
		//Math.PI会调用Math类的常量PI
		double y = Math.PI * r * r;
		System.out.println(y);

在这里插入图片描述

  1. 找出两个数中的最大值
		//找出两个数中的最大值
		int a = 10;
		int b = 20;
		int c = a >= b ? a : b;
		System.out.println(c);

在这里插入图片描述

4.根据底和高判断两个三角形的面积是否相等,相等的话输出相等,否则输出不相等。

三角形面积: S = (1/2) a * h
a 底
h: 高

		//根据底和高判断两个三角形的面积是否相等,相等的话输出相等,否则输出不相等  。
		
		int a = 10;
		int b = 5;
		
		int c = 8;
		int d = 6;
		
		String str = (1/2)a * b == (1/2)c * d ? "相等" : "不相等";
		//或者如以下
		String str = a * b == c * d ? "相等" : "不相等";
		System.out.println(str);  //不相等

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值