• 【Java从入门到精通 03】:Java运算符及进制转换


    导航🌌

    目录

    📀运算符分类

    📀算术运算符

    📀关系运算符

    📀逻辑运算符

    📀赋值运算符

    📀三元运算符

    📀运算符优先级

    🍂进制介绍

    🍂二进制转十进制

    🍂八进制转十进制

    🍂十六进制转十进制

    🍂十进制转二进制

    🍂十进制转八进制

    🍂十进制转十六进制

    🍂二进制转八进制

    🍂二进制转十六进制

    🍂八进制转二进制

    🍂十六进制转二进制


    📀运算符分类

    运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。主要有以下几类:

    1. 算术运算符
    2. 赋值运算符
    3. 关系运算符
    4. 逻辑运算符
    5. 位运算符
    6. 三元运算符

    📀算术运算符

    算术运算符一览表
    运算符运算范例结果
    +正号+77
    -负号b = 11; -b-11
    +9 + 918
    -10 - 82
    *7 * 856
    /9 / 91
    %取模(取余)11 % 92

    ++

    ++

    自增(前置):先运算后取值

    自增(后置):先取值后运算

    a = 2; b = ++a

    a = 2; b = a++

    a = 3; b = 3

    a = 3; b = 2

    --

    --

    自减(前置):先运算后取值

    自减(后置):先取值后运算

    a = 2; b = --a

    a = 2; b = a--

    a = 1; b = 1

    a = 1; b = 2

    +字符串相加"Java" + "hehe""Javahehe"

    比较特殊的就是底下的字符串相加,可试着运行以下代码体验一下:

    1. public class Test{
    2. public static void main(String[] args){
    3. int n = 1992;
    4. String str1 = n + "";//int型转String类型
    5. String str2 = "Java" + "hehe";
    6. System.out.println(str1);
    7. System.out.println(str2);
    8. System.out.println("Java" + "hehe");
    9. }
    10. }

    输出结果:

    细节说明:

    • 对于除号"/",它的整数除和小数除是有区别的;整数之间做除法时,只保留整数部分而舍弃小数部分
    • 当对一个数取余时,可以等价 a % b = a - a / b * b ,这是取模运算的本质。这里要留意Java中可以对浮点数取余,而C/C++只可操作整数

    📀关系运算符

    关系运算符一览表
    运算符运算范例结果
    ==相当于8 == 7false
    !=不等于8 != 7true
    <小于8 < 7false
    >大于8 > 7true
    <=小于等于8 <= 7false
    >=大于等于8 >= 7true
    instanceof检查是否是类的对象"javahehe" instanceof Stringtrue

    细节说明:

    • 关系运算符的结果都是boolean类型,即true或false
    • 关系运算符组成的表达式即关系表达式
    • 注意“==”和“=”的区别

    📀逻辑运算符

    逻辑运算符一览表
    aba & ba && ba | ba || b!aa ^ b
    truetruetruetruetruetruefalsefalse
    truefalsefalsefalsetruetruefalsetrue
    falsetruefalsefalsetruetruetruetrue
    falsefalsefalsefalsefalsefalsetruefalse

    细节说明:

    • 逻辑运算符用于链接多个条件(多个关系表达式),最终结果也是一个boolean类型
    • 短路与 && ,短路或 || ,取反 !
    • 逻辑与 & ,逻辑或 | ,逻辑异或 ^
    • 在开发中一般使用短路与、短路或,效率高
    • a ^ b: 叫逻辑异或, 当 a 和 b 不同时, 则结果为 true, 否则为 false
    基本规则
    名称语法特点
    短路与 &&如果第一个条件为false,则第二个条件不会判断(执行),最终结果为false,效率高
    逻辑与 &不管第一个条件是否为false,第二个条件都要判断(执行),效率低

    短路或 ||

    如果第一个条件为true,则第二个条件不会判断(执行),最终结果为true,效率高
    逻辑或 |不管第一个条件是否为true,第二个条件都要判断(执行),效率低

    📀赋值运算符

    赋值运算符一览表
    运算符运算范例结果
    =赋值a = 77
    +=加等a = 7;a += 7a = 14
    -=减等a = 7;a -= 7a = 0
    *=乘等a = 7;a *= 7a = 49
    /=除等a = 7;a /= 7a = 1
    %=模等a = 7;a %= 7a = 0

    细节说明:

    • a += 7等价于a = a +7,其他类推
    • 除了=之外,其他赋值运算符均为单目运算符,即只有一个操作数
    • 运算顺序是从左往右

    📀三元运算符

    条件表达式 ? 表达式1 : 表达式2;

    运算规则:若条件表达式为true,运算后的结果是表达式1;若条件表达式为false,运算后的结果是表达式2

    细节说明:

    • 三元运算符的结果可以进行赋值或作函数返回值
    • 三元运算符可以转换成if - else 语句

    📀运算符优先级

    运算符优先级一览表(优先级从上往下)
    运算方向运算符
    .       {}        []      ;      ,
    R ——> L++   --   ~   !  
    L ——> R*   /   %
    L ——> R+  -
    L ——> R<<    >>   >>>  位移
    L ——> R<    >     <=    >=   instanceof  
    L ——> R==    !=  
    L ——> R&
    L ——> R^
    L ——> R|
    L ——> R&&    
    L ——> R||
    L ——> R?   :   
    R ——> L=     *=      /=       %=
    +=     -=    <<=    >>=
    >>>=     &=    ^=    !=

    🍂进制介绍

    对于整数,常有以下四种表示方式:

    • 二进制:0、1,满2进1,以0b或者0B开头
    • 八进制:0~7,满8进1,以数字0开头表示
    • 十进制:0~9,满10进1
    • 十六进制:0~9及A(10)~F(15),满16进1,以0x或者0X开头表示。A~F不区分大小写

    🍂二进制转十进制

    规则:从最低位(最右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和

    实例:将0b1011转成十进制的数,0b1011 = 1 * 2^(1-1) + 1 * 2^(2-1) + 0 * 2^(3-1) + 1 * 2^(4-1) = 1 + 2 + 0 + 8 = 11

    🍂八进制转十进制

    规则:从最低位(最右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和

    实例:将0234转成十进制的数,0234 = 4 * 8^0 + 3 * 8^1 + 2 * 8^2 = 4 + 24 + 128 = 156

    🍂十六进制转十进制

    规则:从最低位(最右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和

    实例:将0x23A转成十进制的数,0x23A = 10 * 16^0 + 3 * 16^1 + 2 * 16^2 = 10 + 48 + 512 = 570

    🍂十进制转二进制

    规则:将该十进制数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。(一般使用短除法操作,容易看清楚数据)

    🍂十进制转八进制

    规则:将该十进制数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。(一般使用短除法操作,容易看清楚数据)

    🍂十进制转十六进制

    规则:将该十进制数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。(一般使用短除法操作,容易看清楚数据)

    🍂二进制转八进制

    规则:从低位开始,将二进制数每三位一组,转换成对应的八进制数即可

    实例:将0b11010101转成八进制数,0b11(3)010(2)101(5) => 0325

    🍂二进制转十六进制

    规则:从低位开始,将二进制数每四位一组,转换成对应的十六进制数即可

    实例:将0b11010101转成八进制数,0b1101(D)0101(5) => 0xD5

    🍂八进制转二进制

    规则:将八进制数每1位,转换成对应的一个3位的二进制数即可

    实例:将0237转换成二进制数,02(010)3(011)7(111) = 0b10011111

    🍂十六进制转二进制

    规则:将十六进制数每1位,转换成对应的4位的一个二进制数即可

    实例:将0x23B转换成二进制数,0x2(0010)3(0011)B(1011)


    学习记录:

    • 📆本篇博客整理于2022.7.17~2022.7.20
    • 🎓作者:如何写出最优雅的代码
    • 📑如有错误,敬请指正🌹🌹
    • 🥂关注一波不迷路!如果觉得写的不错,看完了别忘了点赞和收藏啊,感谢支持😏😏
  • 相关阅读:
    一个开源且完全自主开发的国产网络协议栈
    tomcat为什么要自定义类加载器?
    Python中*args 和**kwargs的用法
    Unity 实现原神中的元素反应
    shiro学习33-shiro的工具类-webUtils
    Redis 高级特性 Redis Stream使用
    HTML期末大学生网页设计作业——奇恩动漫HTML (1页面) HTML CSS JS网页设计期末课程大作业
    追求极致性能!Qwik 1.0版本发布
    非母语玩家如何撰写研究性英文论文:0. 前言
    企业级信息化系统 ERP、OA、CRM、EAM、WMS、MES、PM
  • 原文地址:https://blog.csdn.net/m0_62080641/article/details/125814095