• 第三章:运算符


    目录

    一、算数运算符

    二、关系运算符

    三、逻辑运算符

    1.定义:

    2.例题:

    四、赋值运算符

    1.定义:

    五、三元运算符

    1.定义:

    六、运算符优先级(有个印象即可)

    七、标识符的命名规则

    1.定义:

    八、键盘输入语句

    1.定义:

    九、进制

    1.定义:

    2.原码、反码、补码:

    3 .位运算:


    一、算数运算符

    +        -        *        /        %        ++        --

    注意 10 / 4 = 2 在Java中因为int类型取整位

    int  a = 10; a = a ++;  sout(a) //10

    注意  小数取余有公式   a % b; a是小数时公式 a - (int)a / b *b;        -10.5 % 3 = -10.5 - (-3)* 3 =  -1.5 

    二、关系运算符

    ==        !=        >        <        >=        <=

    *返回值为Boolean值,a > b 称为关系表达式

    三、逻辑运算符

    1.定义:

    短路与 &&        短路或 ||         取反 !        逻辑与 &          逻辑或 |         ^逻辑异或

    • 短路与&&   逻辑与&  区别:&&短路与如果第一个为false,则第二个条件就不会判断了效率高(开发用这个),&逻辑与都需要判断。
    • 短路或 || 逻辑或||  区别:||短路或如果第一个为true,则第二个条件就不会判断了效率高(开发用这个),|逻辑或都需要判断。
    • 非!:!true 为 false    异或^:相同为false,不同为true

    2.例题:

    int x = 5; int y = 5; if(x++=6 & ++y==6){x=11;} sout(x,y) // 6,5

    int x = 5; int y = 5; if(x++=6 && ++y==6){x=11;} sout(x,y)  //6,5

    int x = 5; int y = 5; if(x++=5 | ++y==5){x=11;} sout(x,y) //11,6

    int x = 5; int y = 5; if(x++=5 || ++y==5){x=11;} sout(x,y) //11,5

    四、赋值运算符

    1.定义:

    +=        -=        *=        /=        %=        

    a += 3; ==> a = a + 3;

    五、三元运算符

    1.定义:

    条件表达式  ?表达式1:表达式2;    条件表达式为真,运算结果为表达式1;条件表达式为假,运算结果为表达式2;

    表达式1,2可以赋值给变量接收; int a = 1 == 2 ? 1 : 2;

    六、运算符优先级(有个印象即可)

    七、标识符的命名规则

    1.定义:

    凡是自己取名字的地方都叫标识符

    由26个字母,美元符号,下划线,数字组成,数字不能开头,保留字与关键字不能用,严格区分大小写,不能有空格

    1. 包名:全部小写,com.baidu.exer
    2. 类名、接口名:所有单词首字母大写  SchoolStudent
    3. 变量名:首单词首字母小写,其余单词首字母大写,studentName
    4. 常量名:所有字母都大写

    八、键盘输入语句

    1.定义:

                 Scanner sc = new Scanner(System.in);         int a = sc.nextInt();//得到一个整型

    九、进制

    1.定义:

    • 二进制:0 1,满二进一,以0B或0b开头。
    • 八进制:0-7,满七进一,以0开头
    • 十进制:0-9,满十进一
    • 十六进制:0-F,满十六进一,以0X或0x开头

    二转十:位数次方  0b1011 = 8+2+1 = 11

    八转十:位数次方  0234 = 2*64+3*8+4*1=156

    十六转十:位数次方 0x23A = 570

    十转二:除二取余 34= 100010

    十转八:除八取余 131 = 0203

    十转十六:除十六取余   237 = 0xED

    二转八转十六:每三位为八进制,每四位为十六进制

    八进制、十六进制转二进制:每一位对应三个二进制,每四位对应一个二进制

    2.原码、反码、补码:

    45 ==> 0010 1101             -45 ==> 1010 1101

    正数三码合一,负数的反码等于除符号位全部取反,补码在反码的基础上加1

    0010 1101        0010 1101        0010 1101

    1010 1101        1101 0010        1101 0011

    3 .位运算:

    位运算采用的是补码来计算。计算机看到的是原码

    • 2&3:2的补码:0000 0010 & 3的补码0000 0011 ==>0000 0010(补码)===>0000 0010(原码)==> 2
    • ~-2:-2的补码:1111 1110   取反 0000 0001(补码) ===> 0000 0001(正数,原码等于补码)==> 1
    • 1 >> 2 等于 1 / 2 / 2 = 0(小数就为0)  15 >> 2  = 15 / 2 / 2 = 3
    • 1 << 2 等于 1 * 2 * 2 = 4          4 << 3 = 4 * 2 * 2 * 2 = 32
  • 相关阅读:
    模型实战(21)之 C++ - tensorRT部署yolov8-det 目标检测
    9. CSP-Cache Server Page
    抽象类与接口
    关于测试的思考-自动化测试以及流量回放
    论文阅读 (70):Exploring Self-attention for Image Recognition
    【OJ每日一练】1017 - 计算蔬菜总价
    C#中实现按位域操作
    Github 常用资源搜索技巧 & Git - Pycharm 项目推拉 - 基本使用
    Leetcode刷题Day2----数组
    思维,序列和
  • 原文地址:https://blog.csdn.net/m0_61927991/article/details/126817479