java运算符
比较运算符
== :基本类型比较的是数值,引用类型比较的是地址值
!= : 不等比较
三元运算符
表达式?结果1:结果2 三目运算符
int a=10;
int b=5;
int c= a>b?1:2;//c的结果为1。该运算符的含义为 表达式为真则取结果1,为假则取结果2
逻辑运算符
&:与
表达式1&表达式2 表达式1与表达式2都为真则结果为真
&&:短路与
表达式1&&表达式2 含义与上相同,区别为,若表达1为假,则无需判断表达式2,结果直接为假
|:或
表达式1|表达式2 表达式1和表达式2中有一个为真则为真
||:短路或
表达式1||表达式2 含义与上相同,区别为,若表达式1为真,则无需判断表达式2,结果直接为真
!:非
!表达式 表达式为真则结果为假,表达式为假则结果为真
赋值运算符
= :赋值
int a=1;
+=,-=,*=,/= : 复合的赋值运算
int a=1;
int a+=1;//相当于 int a=a+1;
int a-=1;//相当于 int a=a-1;
int a*=1;//相当于 int a=a*1;
int a/=1;//相当于 int a=a/1;
算术运算符
+,-,*
%: 取余
int a=100%3 //结果为1
/:取整
int a=11/2; //结果为5
++:自增
int a=1;
int c=++a;//c的结果为2,自增常用于循环中
--:自减
int a=2;
int b=--a; //c的结果为1,自减也常用于循环中
&:按位与
概念:两个数字的补码一 一相对,同为0则为0,0和1则为0,同为1则为1
int a=9;
int b=-9;
int c=4;
int d=8;
int e=a&c;
//结果为0步骤如下
//a为9 其补码为 00000000 00000000 00000000 00001001
//c为4 其补码为 00000000 00000000 00000000 00000100
//按上述计算结果为 00000000 00000000 00000000 00000000
int e=a&d;
//结果为8步骤如下
//a为9 其补码为 00000000 00000000 00000000 00001001
//d为8 其补码为 00000000 00000000 00000000 00001000
//按上述计算结果为 00000000 00000000 00000000 00001000
int f=b&d;
//结果为0步骤如下
//b为-9 其补码为 11111111 11111111 11111111 11110111
//d为8 其补码为 00000000 00000000 00000000 00001000
//按上述计算结果为 00000000 00000000 00000000 00000000
//计算的结果为补码,需要转换为原码再计算值,因为是正数补码与原码相同
|: 按位或
概念:两个数字的补码一 一相对,同为0则为0,0和1则为1,同为1则为1
int a=9;
int b=-9;
int c=4;
int d=8;
int e=a|c;
//结果为13步骤如下
//a为9 其补码为 00000000 00000000 00000000 00001001
//c为4 其补码为 00000000 00000000 00000000 00000100
//按上述计算结果为 00000000 00000000 00000000 00001101
int e=a|d;
//结果为9步骤如下
//a为9 其补码为 00000000 00000000 00000000 00001001
//d为8 其补码为 00000000 00000000 00000000 00001000
//按上述计算结果为 00000000 00000000 00000000 00001001
int f=b|d;
//结果为-1步骤如下
//b为-9 其补码为 11111111 11111111 11111111 11110111
//d为8 其补码为 00000000 00000000 00000000 00001000
//按上述计算结果为 11111111 11111111 11111111 11111111
//该负数对应的原码为 10000000 00000000 00000000 00000001 所以结果为-1
^ : 异或
概念:两个数字的补码一 一相对,同为0则为0,0和1则为1,同为1则为0,注意与或的区别
int a=9;
int b=-9;
int c=4;
int d=8;
int e=a^c;
//结果为13步骤如下
//a为9 其补码为 00000000 00000000 00000000 00001001
//c为4 其补码为 00000000 00000000 00000000 00000100
//按上述计算结果为 00000000 00000000 00000000 00001101
int e=a^d;
//结果为1步骤如下
//a为9 其补码为 00000000 00000000 00000000 00001001
//d为8 其补码为 00000000 00000000 00000000 00001000
//按上述计算结果为 00000000 00000000 00000000 00000001
int f=b^d;
//结果为-1步骤如下
//b为-9 其补码为 11111111 11111111 11111111 11110111
//d为8 其补码为 00000000 00000000 00000000 00001000
//按上述计算结果为 11111111 11111111 11111111 11111111
//该负数对应的原码为 10000000 00000000 00000000 00000001 所以结果为-1
~ : 取反
概念:两个数字的补码一 一相对,按位取反,0则取为1,1则取为0
int a=~9;
//结果为13步骤如下
//a为9 其补码为 00000000 00000000 00000000 00001001
//按上述计算结果为 11111111 11111111 11111111 11110110
//该负数对应的原码为 10000000 00000000 00000000 00001010 所以结果为-10
标签:11111111,java,结果,00000000,补码,运算符,int,表达式
From: https://www.cnblogs.com/planted/p/17120827.html