package javaday3;
public class Test {
/**
*5.java中的运算符:
* 1.算术运算符:
* 二元运算符(有两个操作数的运算符):+ - * / %
* 注意:在进行除法运算的时候,如果要得到一个精确的值,则必须保证
* 除数或者被除数必须有一个是浮点型。
* 一元运算符:++ --
* ++:自增1
* a++ ++a
* --:自减1
* a-- --a
*
* 注意:1.++或者--出现在一个表达式中,如果在变量的前面则先自增或者自减然后参与运算,
* 否则先运算然后在自增或者自减。
* 2.一元运算符的优先级要高于二元运算付的优先级。
* 3.++和--操作数必须是一个变量。
* 2.关系运算符:
* 二元运算符:> < >= <= != ==
* 所有关系运算符运算结果都属于boolean类型(true/false)
* 注意:比较两个值是否相等要使用双等号(==)
* 3.逻辑运算符:
* 逻辑运算符主要有与或非组成
* 逻辑与:&&:二元运算符:
* 两个操作数都是true的时候结果true;
* 只要有一个操作数是false,则结果就是false.
* 注意:为了提高程序效率,java中逻辑与运算符如果第一个操作数为false.
* 则不再进行运算第二个操作数。
* 逻辑或:||:二元运算符
* 操作数只要有一个为true则结果为true
* 两个操作数否是false的时候结果为false.
* 注意:为了提高程序效率,java中逻辑或运算符如果第一个操作数为true.
* 则不再进行运算第二个操作数。
* 逻辑非:!:一元运算符:
* 只有一个操作数,如果操作数为true则结果为false.
*
* 注意:一般情况下逻辑运算符的操作数都要求是boolean类型的
* 4.位运算:为了方便对二进制位进行操作,java提供了4个位运算符。
* 按位与:&
* 8&12:
* 00001000
* 00001100
* ----------
* 00001000
* 规则:两个位上如果有一个0则结果为0
* 按位或:|
* 8&12:
* 00001000
* 00001100
* ----------
* 00001100
* 规则:两个位上如果有一个1则结果为1
*
* 按位异或:^
* 8^12
* 00001000
* 00001100
* ----------
* 00000100
* 规则:两个位上如果相同则为0,否则为1
* 按位取反:~
* ~8
* 规则:将每一位上的0变为1,1变为0
*
* 注意:表示负数的二进制规则,将正数取反加一
* 5.移位运算符:
* 左移:<<
* 4: 00000100
* <<3: 00100000
* 4<<3=32
* 1<<3=8
* m<<n==m*2的n次方
*
* 规则:将原来的二进制数据朝左边推n个位,右边缺的位补0.
* 注意:左移无关乎正负。
* 右移:>>
* 正数:
* 32 00100000
* >>3 00000100
* 32>>3====4
* m>>n==m/2的n次方
* 规则:将原来的二进制数据朝右边推n个位,左边缺的位补0.
* 负数:
* 无符号右移:>>>
*
*
*
*/
public static void main(String[] args) {
int i=8;
System.out.println(Integer.toBinaryString(-8));
System.out.println(4<<3);
//定义变量a
int a=10;
int b=3;
//++a;//a=a+1
int c=a-- + --b;
System.out.println(a+"----"+b);
System.out.println(++c);
boolean boo=a<b;
System.out.println(a==b);
int x=3;
int y=2;
int z=4;
/*boolean boo1=(x++ +y)>(--z +y);
boolean boo2=(--x - ++y)<(z-- + y++);*/
/* System.out.println(boo1);
System.out.println(boo2);*/
System.out.println((--x - ++y)<y||(x++ +y)>(--z +y));
System.out.println(x+"-----"+y+"-----"+z);
System.out.println(!((--x - ++y)<y));
//x= y= z=
作业:
- 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。由用户输入一个四位数字,然后计算出密文。
package demo1;
import java.util.Scanner;
public class Demo { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入一个四位数字:"); int shu=scanner.nextInt(); int qianwei=shu/1000%10; int baiwei=shu/100%10; int shiwei=shu/10%10; int gewei=shu%10; int ngewei=(gewei+5)%10; int nshiwei=(shiwei+5)%10; int nbaiwei=(baiwei+5)%10; int nqianwei=(qianwei+5)%10; int nshu=ngewei*1000+nshiwei*100+nbaiwei*10+nqianwei; System.out.println("密文为:"+nshu);
}
} |
- 通过键盘输入张华的语文成绩,数学成绩。学校评选“三好学生”
要求:语文成绩至少 90 分,数学成绩至少 95 分。输出张华是否能评上“三好学生”。
package demo1;
public class Demo { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入张华的语文成绩:"); int chinese=scanner.nextInt(); System.out.println("请输入张华的数学成绩:"); int math=scanner.nextInt(); if(chinese>=95&&math>=95){ System.out.println("张华是三好学生!"); } else{ System.out.println("张华不是三好学生!"); }
}
} |
- 从键盘输入一个人的年龄和性别,判断这个人是否符合退休年龄。
(男退休年龄为 65 岁,女退休年龄为 60 岁)。并打印出这个人的信息。
package demo1;
import java.util.Scanner;
public class Demo2 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入你的性别:");
String sex=scanner.next(); System.out.println("请输入你的年龄:"); int age=scanner.nextInt(); if(sex.equals("男")){ if(age>=65){ System.out.println("这位性别年龄为"+age+"的"+sex+"士已符合退休年龄"); }else{ System.out.println("这位性别年龄为"+age+"的"+sex+"士不符合退休年龄"); }
} else{ if(age>=60){ System.out.println("这位性别年龄为"+age+"的"+sex+"士已符合退休年龄"); }else{ System.out.println("这位性别年龄为"+age+"的"+sex+"士不符合退休年龄"); } }
}
}
|
4. 通过编写程序,ia = 100; ib = 50;求出 ia++ - --ia + ++ib - ib-- + ++ia
的值是多少。并把求出的值打印出来
package demo1;
public class Demo { public static void main(String[] args) { int ia=100; int ib=50; int ic=ia++ - --ia + ++ib - ib-- + ++ia; System.out.println(ic); } } |
5。请输入一个 5 位数,判断它是不是回文数。即 12321 是回文数,
个位与万位相同,十位与千位相同。
package demo1;
import java.util.Scanner;
public class Demo { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System .out.println("请输入一个五位数:"); int shu=scanner.nextInt(); int gewei=shu/10000%10; int shiwei=shu/1000%10; int baiwei=shu/100%10; int qianwei=shu/10%10; int wanwei=shu%10; if(gewei==wanwei&&shiwei==qianwei){ System.out.println(shu+"是回文数");
} else{ System.out.println(shu+"不是回文数");
} } }
|
- -18>>>2
- -20>>>1
- -88>>2
- -56>>3
- -40>>2
- -13<<2
- -6<<4
package demo1;
import java.util.Scanner;
public class Demo { public static void main(String[] args) { System.out.println(-18>>>2); System.out.println(Integer.toBinaryString(-18>>>2)); /* * 18:00010010 * 取反:11101101 * +1:11101110 *----------------- * >>>2:00111011 * 取反:11000100 * +1 : 11111111 11111111 11111111 11000101 */
System.out.println(-20>>>1); System.out.println(Integer.toBinaryString(-20>>>2)); /* 20:00010100 * 取反:11101011 * +1 : 11101100 *>>>1:01110110 * 取反:10001001 * +1 : 10001010 * * */
System.out.println(-88>>2); System.out.println(Integer.toBinaryString(-18>>2));
System.out.println(-56>>3); System.out.println(Integer.toBinaryString(-56>>3));
System.out.println(-40>>2); System.out.println(Integer.toBinaryString(-40>>2));
System.out.println(-13<<2); System.out.println(Integer.toBinaryString(-13<<2));
System.out.println(-6<<4); System.out.println(Integer.toBinaryString(-6<<4));
} } |
}
}