首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【测开技能】Java语言系列(四) 整数运算

【测开技能】Java语言系列(四) 整数运算

作者头像
雷子
发布2022-09-29 20:04:43
发布2022-09-29 20:04:43
4490
举报

Java系列分享

【测开技能】Java语言系列(一)Java入门

【测开技能】Java语言系列(二)Java基础语法

【测开技能】Java语言系列(三)变量和数据类型


Java的整数运算遵循四则运算规则,可以使用任意嵌套的小括号。四则运算规则和初等数学一致。

代码语言:javascript
复制
  public static void main(String[] args)  {
                int i = (100 + 200) ;
                int n = 7 * (5 + (i - 9));
                System.out.println(i);
                System.out.println(n);
    }

两个整数相除只能得到结果的整数部分

代码语言:javascript
复制
  public static void main(String[] args)  {
                int i = 10/3;
                System.out.println(i);
    }

结果:3

求余运算

代码语言:javascript
复制
 public static void main(String[] args)  {
                int i = 10%3;
                System.out.println(i);
    }

结果运行展示

这里要注意,我们的除数不能是0,否则报错

代码语言:javascript
复制
  public static void main(String[] args)  {
                int i = 10%0;
                System.out.println(i);
    }

结果展示

要特别注意,整数由于存在范围限制,如果计算结果超出了范围,就会产生溢出,而溢出不会出错,却会得到一个奇怪的结果。

代码语言:javascript
复制
    public static void main(String[] args)  {
                int x = 2147483640;
                int y = 12225;
                int sum = x + y;
                System.out.println(sum);
            }

结果输出

所以整数的运算不能巢湖来整数的最大的范围。

整数运算还有:一种简写的运算符,即+=,-=,*=,/=

我们如何使用呢

代码语言:javascript
复制
  public static void main(String[] args) {
        int x = 2;
        System.out.println(x += 1);
        System.out.println(x -= 1);
        System.out.println(x *= 10);
        System.out.println(x * 2);
    }

看下打印的结果

除了上面的,还有自增 和自减,如何操作呢

代码语言:javascript
复制
public static void main(String[] args) {
        int x = 2;
        x++;
        System.out.println(x);
        x--;
        System.out.println(x);
    }

结果输出

移位运算

在计算机中,整数总是以二进制的形式表示。

我们可以看下左移

代码语言:javascript
复制
public static void main(String[] args) {
        int n = 7;
        int a = n << 1;  
        int b = n << 2;
        System.out.println(a);
        System.out.println(b);
    }

结果输出

右移动

代码语言:javascript
复制
 public static void main(String[] args) {
        int n = 7;
        int a = n >>> 1;
        int b = n >>> 2;
        System.out.println(a);
        System.out.println(b);
    }

结果

仔细观察可发现,左移实际上就是不断地×2,右移实际上就是不断地÷2

位运算

位运算是按位进行与、或、非和异或的运算。

运算法则:

代码语言:javascript
复制
与运算的规则是,必须两个数同时为1,结果才为1
或运算的规则是,只要任意一个为1,结果就为1:
非运算的规则是,0和1互换:
异或运算的规则是,如果两个数不同,结果为1,否则为0

我们看下代码的

代码语言:javascript
复制
public static void main(String[] args) {
       System.out.println(0 & 0);
        System.out.println(0 & 1);
        System.out.println(1 & 1);
        System.out.println(0 | 0);
        System.out.println(1 | 0);
        System.out.println(0 | 1);
        System.out.println(0^0);
    }

输出下结果

那么这些运算中于什么样的优先级呢,

在Java的计算表达式中,运算优先级从高到低依次是:

  • ()
  • ! ~ ++ --
  • * / %
  • + -
  • << >> >>>
  • &
  • |
  • += -= *= /=

发现问题,解决问题。遇到问题,慢慢解决问题即可。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 移位运算
  • 结果
  • 仔细观察可发现,左移实际上就是不断地×2,右移实际上就是不断地÷2
  • 位运算
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档