package com.dengchaoqun.ht;
public class OperatorsDemo {
public static void main(String[] args) {
//运算符是一些特殊的符号,主要用于数学函数,一些类型的赋值语句和逻辑比较方面的问题。
//主要的运算符有算数运算符,赋值运算符,比较运算符等
//赋值运算符”=“是一个二元运算符(对两个操作数做处理),其功能是江右方的操作数赋值给左方
int a=10;
int c=12;
int b=a+c;
System.out.println(b);
//算数运算符主要有”+“,”-“,”*“,”/","%",他们都是二元运算符
float number=1234.56f;
int number2=123;
System.out.println("和为:"+(number+number2));
System.out.println("差为:"+(number-number2));
System.out.println("积为:"+(number*number2));
System.out.println("商为:"+(number/number2));
System.out.println("求于为:"+(number%number2));
//自增自减运算符是单目运算符
int x1=5;
int x2=x1++; //放在操作元后面的自增自减运算符,会是变量先参与表达式的运算,然后再将该比变量的值加1或者减1
System.out.println(x1);
System.out.println(x2);
int x3=++x1; // 放在操作元前面的自增自减运算符,会是变量的值先加1或者减1,然后再进行表达式的运算
System.out.println(x1);
System.out.println(x3);
//比较运算符是属于二元运算符,六个运算符分别为:>,<,==,>=,<=,!=;其中==和!=可以运用于基本数据类型和引用数据类型
//其它用于整型,字符型,浮点型数据。比较运算符返回的是boolean数据类型。
int myInt1=12;
int myInt2=3;
System.out.println("myInt1>myInt2的返回值是:"+(myInt1>myInt2));
System.out.println("myInt1<myInt2的返回值是:"+(myInt1<myInt2));
System.out.println("myInt1==myInt2的返回值是:"+(myInt1==myInt2));
System.out.println("myInt1>=myInt2的返回值是:"+(myInt1>=myInt2));
System.out.println("myInt1<=myInt2的返回值是:"+(myInt1<=myInt2));
System.out.println("myInt1!=myInt2的返回值是:"+(myInt1!=myInt2));
//逻辑运算符:逻辑与&&(&),逻辑或||,逻辑非!。;逻辑运算符的操作元必须是boolean数据类型,“!”是单目运算符,其余为二元运算符
boolean myBool1=((a>b)&&(a!=b));
boolean myBool2=((a>b)||(a!=b));
System.out.println("逻辑与"+myBool1);
System.out.println("逻辑或"+myBool2);
System.out.println(~ (0xa5) &0xaa);
//位运算符,位运算符除按位与和按位或运算符,其他职能用于处理整数的操作数,位运算是完全针对位方面的操作。
//按位与&和按位或|都是双目运算符,
//按位与的运算法是:若果两个整数a,b对应都是1,则结果位是1,否则为0;如果两个操作数的精度不同,则结果的精度和精度高的操作数相同
//按位或的运算法则是:如果两个整数a,b对应位是都是0,则结果为0,否则为1;如果两个操作数的精度不同,则结果与精度高的操作数相同
//按位取反(~)为单目运算符。按位取反就是将操作数中的1修改为0,将0修改为1;
//按位异或(^)为双目运算符,运算法则是:当两个操作数的二进制位表示相同则结果为0;否则为1,如果精度不同则结果数的精度和精度高的操作数相同。
//位移操作符,左移<<;又移>>;无符号右翼>>>
//三元运算符:条件式?值1:值2;三元运算规则是:若条件式为true,则整个表达式取值1,否则取值2;
//运算符的优先级(由高到低):增量和减量运算>算术运算>比较运算>逻辑运算>赋值运算符
}
}