Java基础

关于运算符
运算符的分类:

  • 1、赋值运算符 =
  • 2、算术运算符 + - * / %(模) ++ –
  • 3、复合运算符 += -= *= /= %=
  • 4、关系运算符 > >= < <= == !=
  • 5、逻辑运算符 && || !
  • 6、位运算符 & | ~ ^ << >>
  • 7、三目运算符 ?
    // ++ 自增运算符
    int num = 10;
    // num++;//等价于num = num + 1;
    // ++num;//等价于num = num + 1;
    int num2 = 10;
    int x = num++;//num = num + 1;
    //int x = num++;
    //等价于 int x = num;
    // num = num + 1;
    int y = ++num2;//num2 = num2 + 1;
    //int y = ++num2;
    //等价于 num2 = num2 + 1;
    //int y = num2;
    //++在变量前面,先增1,再使用便令。
    //++在变量后面,先使用变量,在增1
    关系运算符 > >= < <= == !=
    //关系运算符的运算结果一定是一个boolean
    逻辑运算符 && || !
    //&& 逻辑与 表示并且,用来连接2个表达式。
    //&&两侧的表达式都为真的时候,结果才为真。
    //只要有一个表达式是假,结构就是假。
    //注意事项:一旦发现&&前面的表达式为假了
    //就不再计算后面的表达式了
    //这个现象称为短路现象。
    //|| 逻辑或 表示或者。
    //||左侧或者右侧有一个为true结果就是true。
    //只有在2者都是false的时候才为false。
    //如果 || 左侧的表达式为true,就不再计算||右侧的表达式了
    6、位运算符 & | ~ ^ << >>
    机器码 最高位是符号位 0表示整数 1表示负数
    //真值:真正的值,带正负号。是10进制数。
    //原码(机器码)
    //反码:正数的反码与原码相同,负数的反码:符号位不变,其他位取反。
    //补码:正数的补码与原码相同,负数的补码:反码+1
    //在内存里,整数都是按补码存放的。

//& 按位与。 &左右两侧是2个整数。
//计算规则,先把2个数转化位二进制(补码)。
//再按位与。相同位置的数都是1结果才是1,有一个是0,结果就是0

//| 按位或。 |左右两侧是2个整数。
//计算规则,先把2个数转化位二进制(补码)。
//再按位或。相同位置的数都是0结果才是0,有一个是1,结果就是1

//~按位取反。以前是0变成1,以前是1变成0.
//也是先找补码,对补码取反。
//~8 0000 0000 0000 0000 0000 0000 0000 1000
// 0000 0000 0000 0000 0000 0000 0000 1000(补)
//~ 1111 1111 1111 1111 1111 1111 1111 0111(补)
// 1111 1111 1111 1111 1111 1111 1111 0110(反)
// 1000 0000 0000 0000 0000 0000 0000 1001(原)
// -9
System.out.println(~8);

//~-5 1000 0000 0000 0000 0000 0000 0000 0101
// 1111 1111 1111 1111 1111 1111 1111 1011(补)
//~ 0000 0000 0000 0000 0000 0000 0000 0100(补)
// 0000 0000 0000 0000 0000 0000 0000 0100(反)
// 4
System.out.println(~-5);
// 取非的快速公式:~A = -(A+1);

^ 左右2侧是2个整数。也是先转换为二进制(补码)。
// 相同位置的数,相同为0,不同为1.

数 << n位。<< 左侧是你要移动的数,右侧是要移动多少位。
左移几位相当于乘以2的几次方。
数 >> n位。>> 左侧是你要移动的数,右侧是要移动多少位。
右移几位相当于除以2的几次方。

三目运算符 ?:
  完整格式 表达式1?表达式2:表达式3
  如果表达式1是true的,则表达式2作为输出去。如果表达式1是false,则表达式3作为输出。
  
  int x = 28;
  int y = 42;
  //int max = x > y ? x : y;
  int result = x > y ? x*2+1 : x + y;
  System.out.println(result);
  
  运算顺序
  一目>二目>三目>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值