第一阶段第四章运算符

第四章

 算数运算符

 

 运算代码:

public class ArithmeticOperators{
	public static void main(String[] args){
	int i = 10/4;//数学中得2.5 java中得2
	double d = 10/4;//int->double 寰 2.0
	//int i2 = 10.0/4; //把double->int 错误
	double d2 = 10.0/4; //寰2.5
	System.out.println(i);
	System.out.println(d);
	System.out.println(d2);

	//余数公式a/b = a - a/b*b
	int i2 = 10%3;//1
	int i3 = -10%3;//-1
	int i4 = 10%-3;//1

	int i5 = 5;
	int j =i5++;//先赋值后运算 j=i5;i5=i5+1;
	System.out.println(j);//5
	System.out.println(i5);//6
	int j2 =++i5;//先运算后赋值i5=i5+1;j2=i5
	System.out.println(j2);//7
	System.out.println(i5);//7
	}
}

  

 课堂练习

 

public class Test1{
	public static void main(String[] args){
		//题目一
		int i = 59;
		int week = 7;
		int week1 = i/week;
		int day = i%week;
		System.out.println("一共有:"+week1+"周"+day+"天");

		//题目二
		double d = 234.5;
		//double d1 = 5/9*(234.5-100);//bug 5/9在java中得0
		double d1 = 5.0/9*(234.5-100);
		System.out.println("摄氏温度:"+d1);
	}
}

  逻辑运算

 

 

 

 逻辑与和短路与的区别,逻辑或和短路或的区别

public class LogicalOperation{
	public static void main(String[] args){
		//&&(短路与)当前面的判断为假时后面不会判断
		//&(逻辑与)当前面的判断为假时后面仍然判断
               //|和||同理
		int a = 20;
		int b = 80;
		if(a < 10 && ++b > 50){
			System.out.println("true");
		}
		System.out.println("a=" + a + " " + "b=" + b);//a<10为假不会判断 ++b>50, 所以 a=20,b=80;

		if(a < 10 & ++b > 50){
			System.out.println("true");
		}
		System.out.println("a=" + a + " " +  "b=" + b);//a<10为假但仍判断 ++b>50; 所以 a=20,b=81;
	}
}    

  三元运算符

 

 

 

 键盘输入语句

import java.util.Scanner;//表示使用 java.util这个包下的Scanner这个类
public class Input{
	public static void main(String[] args){
		//创建Scanner这个类的对象
	Scanner scanner = new Scanner(System.in);
	System.out.println("请输入名字:");
	String name = scanner.next();//接收用户输入的字符串
	System.out.println("请输入年龄:");
	int age = scanner.nextInt();//接收用户输入的整数
	System.out.println("请输入薪水:");
	double Salary = scanner.nextDouble();
	System.out.println("该用户的名字是:" + name + " " + "该用户的年龄是:" + age + " " + "该用户的薪水是:" + Salary);
	}
}

  进制

 

 

 

 

 二进制转十进制

 

 八进制转十进制

 

 十六进制转十进制

 

 十进制转二进制

注意一个字节是八位如果位数不够需向高位补0 ,一个二进制占八个字节

 

 十进制转八进制

 

 十六进制转10进制

 

 二进制转八进制

注:111是7  第一个1是1 第二个1是2第三个1是八所以加起来是7刚好构成一个八进制 

 

 二进制转十六进制

1111刚好组成一个十六进制所以每四位一组

 

 

八进制和十六进制转二进制

 

注;0X23B  B=1111-4 = 1011  1111是15

 

 

 源码,反码,补码(重点)

 

 位运算

 

 练习1

 

 练习二

 

 

public class BitArithmetic{
	public static void main(String[] args){
		//思路 一,计算机内任何运算都是以补码计算,但是呈现给我们看的是源码
		//二,2的补码:先将2转换成二进制得到源码,因为正数三码合一
		//所以2的补码:00000000 00000000 00000000 00000010 因为2是int类型占4个字节,一个字节占8个bit
		//3的补码同理:00000000 00000000 00000000 00000011
		//三,&运算:得到2&3的补码:00000000 00000000 00000000 00000010    &:两位中同时是1才得1,反之得0
		//四,计算机将补码转换成源码呈现给我们
		//2&3的源码:因为正数三码合一所以源码就是补码
		System.out.println(2&3);//2


		//-2的补码: 负数的补码=反码+1,源码变反码符号位不变其余取反;
		//-2的源码:10000000 00000000 00000000 00000010 注:最高位1代表负号 0代表正号
		//-2的反码:11111111 11111111 11111111 11111101
		//所以-2的补码:11111111 11111111 11111111 11111110
		//~-2:1->0,0->1得 00000000 00000000 00000000 00000001//正数
		System.out.println(~-2);//1


		//2的补码:00000000 00000000 00000000 00000010
		//3的补码:00000000 00000000 00000000 00000011
		//2|3的补码: 两位中有一个为1就得1,两个都为0才得0; 00000000 00000000 00000000 00000011
		//2|3的源码:00000000 00000000 00000000 00000011//正数
		System.out.println(2|3);//3


		//-5的源码:10000000 00000000 00000000 000000101
		//-5的反码:11111111 11111111 11111111 111111010
		//-5的补码;11111111 11111111 11111111 111111011
		//~-5的补码:00000000 00000000 00000000 00000100//最高位为0正数
		//~-5的源码:00000000 00000000 00000000 00000100
		System.out.println(~-5);//4

		//13的补码:00000000 000000000 00000000 00001101
		//7的补码:00000000 00000000 00000000 00000111
		//13&7的补码;00000000 00000000 00000000 00000101
		//13&7的源码:00000000 00000000 00000000 00000101
		System.out.println(13&7);//5

		//-3的源码:10000000 00000000 00000000 00000011
		//-3的反码:11111111 11111111 11111111 11111100
		//-3的补码:11111111 11111111 11111111 11111101
		//3的补码: 00000000 00000000 00000000 000000011
		//-3^3的补码 两个中不相同才为1,反正为0  11111111 11111111 11111111 11111110 //补码-1得反码
		//-3^3的反码:11111111 111111111 11111111 11111101
		//-3^3的源码:10000000 000000000 00000000 00000010
		System.out.println(-3^3);//-2

	}
}

  位运算

 

 

 

 本章作业

 

posted @ 2023-02-09 20:23  iiuu也一样  阅读(20)  评论(0编辑  收藏  举报