基础运算符

127 阅读3分钟

这是我参与2022首次更文挑战的第3天,活动详情查看:2022首次更文挑战 | 创作学习持续成长,夺宝闯关赢大奖 - 掘金 (juejin.cn)

6.进制

  • 对于整数,有四种表示方式:

  • 二进制(binary):0,1 满二进一,以0b或0B开头

  • 十进制(decimal):0-9 满十进一

  • 八进制(octal):0-7 满八进一,以数字0开头

  • 十六进制(hex):0-9及A-F 满十六进一,以0x或0X开头表示,A-F不区分大小写

    class Binary{
        public static void main(String[] args){
    ​
    ​
            int num1 = 0b110;
            int num2 = 110;
            int num3 = 0127;
            int num4 = 0x110A;
            System.out.println("num1 = "+num1);//6
            System.out.println("num2 = "+num2);//110
            System.out.println("num3 = "+num3);//87
            System.out.println("num4 = "+num4);//4362
        }
    }
    

(1)二进制转十进制

image.png

2^0+2^1+2^2+2^3+2^4+2^5+2^6=127

(2)十进制转二进制

除二取余的逆

image.png

除2取余的逆

(3)负数的二进制表示

  • 原码:直接将一个数值换成二进制数。最高位是符号位
  • 负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
  • 负数的补码:其反码加1。
  • 正数:原码、反码、补码相同的。

image.png

image.png

image.png

(3)进制间转化

以二进制为媒介

image.png

image.png

image.png

(三)运算符

1.算数运算符

image.png

/*
算术运算符:+ - * / % ++ ++ -- --
*/
​
class AriTest{
    public static void main(String[] args){
​
        //除号 /
        int num1 = 12;
        int num2 = 5;
        int result1 = num1/num2;
        System.out.println(result1);//2
        int result2 = num1/num2*num2;
        System.out.println(result2);//10
​
        double result3 = num1/num2;
        System.out.println(result3);//2.0
​
        double result4 = (double)num1/num2;//2.4
        System.out.println(result4);
​
        double result5 = num1 / num2 + 0.0;//2.0
        double result6 = num1 / (num2 + 0.0);//2.4
        double result7 = 1.0 * num1 / num2;//2.4
​
        //%取余运算
        //结果的符号与被模数的符号相同
        //开发中常用来判断能否除尽
        int m1 = 12;
        int n1 = 5;
        System.out.println(m1%n1);
​
        int m2 = -12;
        int n2 = 5;
        System.out.println(m2%n2);
​
        int m3 = 12;
        int n3 = -5;
        System.out.println(m3%n3);
​
        int m4 = -12;
        int n4 = -5;
        System.out.println(m4%n4);
​
​
        //(前)++,先自增,再运算
        //(后)++,先运算,再自增
​
        int a1 = 10;
        int b1 = ++a1;
        System.out.println("a1 = " + a1 + ",b1 = " + b1);
​
        int a2 = 10;
        int b2 = a2++;
        System.out.println("a2 = " + a2 + ",b2 = " + b2);
​
        //注意点:
        short s1 = 10;
        //s1 = s1 + 1;//编译失败
        s1 = (short)(s1 + 1);//方法一
        s1++;//方法二
​
        //自增自减不会改变变量本身的数据类型
​
        byte b3 = 127;
        b3++;
        System.out.println("b3 = " + b3);//二进制
​
​
​
        //(前)--,先自减,再运算
        //(后)--,先运算,再自减
​
        int a4 = 10;
        //int b4 = --a4;
        int b4 = a4--;
        System.out.println("a4 = " + a4 + ",b4 = " + b4);
​
        
    }
    
}

2.赋值运算符

/*
运算符二:赋值运算符
=   +=  -=  *=  /=  %=
*/
​
class SetValue{
    public static void main(String[] args){
        //赋值符号
        int i1=10;
        int j1=10;
​
        //连续赋值
        int i2,j2;
        i2=j2=10;
​
        int i3=10,j3=20;
​
        //*********************
        int num1 = 10;
        num1 += 2;//num = num + 2;
        System.out.println(num1);//12
​
        int num2 = 12;
        num2 %= 5;//num2 = num2 % 5;
        System.out.println(num2);
​
        //区别
        short s1 = 10;
        //s1 = s1 + 2;//编译失败
        s1 += 1;
        System.out.println(s1);//不会改变变量本身的数据类型
​
​
        //开发中希望实现+2的操作有几种方法(前提:int num = 10)
        //1.num = num + 2;
        //2.num += 2;//(推荐)
​
        //开发中希望实现+1的操作有几种方法(前提:int num = 10)
        //1.num = num + 1;
        //2.num += 1;
        //3.num++;//(推荐)
​
    }
​
}

3.比较运算符

image.png

/*
运算符三:比较运算符
==  !=  >   <   >=  <=  instanceof
​
结论:
1.比较运算符的结果是boolean类型
2.区分==与=
*/
​
class CompareTest{
    public static void main(String[] args){
        int i=10;
        int j=20;
​
        System.out.println(i==j);//false
        System.out.println(i=j);//20
​
        boolean b1=true;
        boolean b2=false;
        System.out.println(b2==b1);//false
        System.out.println(b2=b1);//true
    }
    
}