ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JAVA运算符

2022-04-13 22:31:51  阅读:162  来源: 互联网

标签:右移 JAVA 运算 00000000 运算符 int 100


JAVA运算符

目录

加减乘除的简写运算符

n+=100;//相当于n=n+100
n-=100;//相当于n=n-100
n*=100;//相当于n=n*100 相除只能得到整数部分,取余使用%
n/=100;//相当于n=n/100

自增自减

对整数进行加1和减1操作

public class Main {
    public static void main(String[] args) {
        int n = 3300;
        n++; // 3301, 相当于 n = n + 1;
        n--; // 3300, 相当于 n = n - 1;
        int y = 100 + (++n); //++写在前面和后面是不一样的,++n表示先加1再引用n,反之。
        System.out.println(y);// 输出y=3401
    }
}

移位运算

  1. 左移:
int n = 7;       // 00000000 00000000 00000000 00000111 = 7
int a = n << 1;  // 00000000 00000000 00000000 00001110 = 14
int b = n << 2;  // 00000000 00000000 00000000 00011100 = 28
int c = n << 28; // 01110000 00000000 00000000 00000000 = 1879048192
int d = n << 29; // 11100000 00000000 00000000 00000000 = -536870912

左移29位时,由于最高位变成1,因此结果变成了负数。

  1. 右移
int n = 7;       // 00000000 00000000 00000000 00000111 = 7
int a = n >> 1;  // 00000000 00000000 00000000 00000011 = 3
int b = n >> 2;  // 00000000 00000000 00000000 00000001 = 1
int c = n >> 3;  // 00000000 00000000 00000000 00000000 = 0

如果对一个负数进行右移,最高位的1不动,结果仍然是一个负数

  1. 还有一种无符号的右移运算,使用>>>,它的特点是不管符号位,右移后高位总是补0,因此,对一个负数进行>>>右移,它会变成正数,原因是最高位的1变成了0
int n = -536870912;
int a = n >>> 1;  // 01110000 00000000 00000000 00000000 = 1879048192
int b = n >>> 2;  // 00111000 00000000 00000000 00000000 = 939524096
int c = n >>> 29; // 00000000 00000000 00000000 00000111 = 7
int d = n >>> 31; // 00000000 00000000 00000000 00000001 = 1
  • byteshort类型进行移位时,会首先转换为int再进行位移。

其实左移实际上就是不断地×2,右移实际上就是不断地÷2。

位运算

&,或|,非~,异或^

异或运算的规则是,如果两个数不同,结果为1,否则为0

布尔运算

  • 比较运算符:>>=<<===!=

  • 与运算 &&

  • 或运算 ||

  • 非运算 !

    短路运算

    1. 因为false && x的结果总是false,无论xtrue还是false,因此,与运算在确定第一个值为false后,不再继续计算,而是直接返回false
    2. 对于||运算,只要能确定第一个值为true,后续计算也不再进行,而是直接返回true

三元运算符

public class Main {
    public static void main(String[] args) {
        int n = -100;
        int x = n >= 0 ? n : -n;//判断n>=0是否成立,true返回n,否则返回-n。
        System.out.println(x);
    }
}

三元运算b ? x : y会首先计算b,如果btrue,则只计算x,否则,只计算y。此外,xy的类型必须相同,因为返回值不是boolean,而是xy之一。

标签:右移,JAVA,运算,00000000,运算符,int,100
来源: https://www.cnblogs.com/tmm-00/p/16142451.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有