博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础-算术运算符(Arithmetic Operators)
阅读量:6603 次
发布时间:2019-06-24

本文共 6415 字,大约阅读时间需要 21 分钟。

             Java基础-算术运算符(Arithmetic Operators)

                                 作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

  Java程序通过运算符实现对数据的处理,Java中的运算符包括:算数运算符,关系运算符,逻辑运算符,条件运算符,位运算符,移位运算符等等。本篇博客主要介绍算数运算符。算数运算符包括:“+,-,*,/,%,++,--”。

 

一.算数运算符的特点

1>.运算结果可能超出数据类型表示范围;

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6  7 public class Arithmetic{ 8     public static void main(String[] args){ 9         int num1,num2,result;10     11         //运算结果可能超出数据类型表示范围12         num1 = 2147483647;13         num2 = 1;14     15         result = num1 + num2;16         System.out.println(result);            //-214748364817         /**18             num1的二进制为:19                 0111 1111 1111 1111 1111 1111 1111 111120             num2的二进制为:21                 0000 0000 0000 0000 0000 0000 0000 000122             +23             ----------------------------------------------24                1000    0000  0000 0000 0000 0000 0000 000025         */26         27         num1 = -2147483648;28         num2 = 1;29         result = num1 - num2;30         System.out.println(result);            //214748364731 32     }33     34     35 }

2>.整数相除结果为整数;

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6  7 public class Arithmetic1{ 8     public static void main(String[] args){ 9     10         //除法,整数相除,结果为整数,舍弃小数部分11         System.out.println( 10 / 3 );        //312         System.out.println( 10 / -3 );        //-313         System.out.println( -10 / 3 );        //-314         System.out.println( -10 / -3 );        //315     }16     17     18 }

3>.除数为0的情况;

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6  7 public class Arithmetic2{ 8     public static void main(String[] args){ 9     10         //除法,除数为0的情况11         // System.out.println( 10 / 0 );12         /**13             整数相除,0作为除数时,编译没有语法错误14             运行时产生算术异常:java.lang.ArithmeticException: / by zero15             注意:16                 整数相除时,保证除数不能为0.17         */18         19         20         //小数相除时,除数为0运行通过,但是结果不是一个数。21         System.out.println( 10 / 0.0 );            //Infinity,表示无穷大22         System.out.println( 10 / -0.0 );        //-Infinity23         System.out.println( -10 / 0.0 );        //-Infinity24         System.out.println( 0 / 0.0 );            //NaN,表示Not a Number25         System.out.println( -0 / 0.0 );            //NaN26     27     }28     29     30 }

4>.余数的符号和被除数一致;

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6  7 public class Arithmetic3{ 8     public static void main(String[] args){ 9     10         //求余,余数的符号与被除数的符号一致11         System.out.println( 10 % 3 );        //112         System.out.println( 10 % -3 );        //113         System.out.println( -10 % 3 );        //-114         System.out.println( -10 % -3 );        //-115     }16 }

5>.自增与自减;

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6  7 public class Arithmetic4{ 8     public static void main(String[] args){ 9     10         //自增与自减11         /**12             1>.自增与自减针对变量进行操作;13             2>.自增就相遇变量的值加1,自减就是变量的值减114         */15         16         int x = 10;17         x++;                        //相当于x = x + 1;18         System.out.println(x);        //1119         20         x = 20;                    21         x--;                        //相当于x = x - 1;22         System.out.println(x);        //1923         24     }25 }

6>.前缀与后缀的区别;

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6  7 public class Arithmetic5{ 8     public static void main(String[] args){ 9     10         int a;11         //自增与自减有前缀和后缀两种形式12         /**13             ++a        这是前缀形式14             a--        这是后缀形式15             区别:16                 前缀形式先自增后运算17                 后缀形式是先参与运算再自增18         */19         a = 10;20         int b = ++a;21         /**22         前缀形式:23             1>.先把变量a的值取出来加124                 a = a +1;25                 现在的a的值为1126             2>.再把变量a的值11赋值给变量b27         */28         System.out.println(b);            //1129         30         a = 20;31         b = a++;32         /**33         后缀形式:34             1>.先把变量a的值保存在一个临时变量中35                 int temp = a;        //temp = 1036             2>.变量a进行自增37                 a = a + 1            //a = 1138             3>.实际上是临时变量参与计算39                 b = temp;            //b = 1040         */41         System.out.println(b);            //2042     }43 }
1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6  7 public class Arithmetic6{ 8     public static void main(String[] args){ 9     10     //面试题:11     int x =10;12     x = x++;13     System.out.println(x);        //打印的结果为什么会是10呢?14     15     /**16         1>.int temp = x;                //temp == 1017         2>.等号右侧的变量x进行自增        18             x = x +1;                    //x = 1119         3>.是把临时变量temp的值赋值给左侧的x变量20             x = temp                    //x = 1021     */22 }23 }
这里有一道我在网上找的面试题,你可以戳进来哟!

7>.自增与自减隐含着强制类型转换;

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6  7 public class Arithmetic7{ 8     public static void main(String[] args){ 9     10     //自增与自减隐含着强制类型转换11     12     byte a = 10;13     // a = a + 1;            14     /**15         由于byte在运算的过程中会自动提升为整形,即左边的a是byte类型,而右边的a确是16     int类型。因此会报错:“错误: 不兼容的类型: 从int转换到byte可能会有损失”。17     */18     19     a++;        //相当于 a = (byte)(a+1);20     21     System.out.println(a);        //1122     23     char b = 'A';24     b++;        //相当于b = (char)(b+1);25     System.out.println(b);        //B26     27     28 }29 }

8>.表达式的数据类型;

  在进行算数运算时,整数,小数,字符都可以参与运算,整个算数表达式的数据类型是:

    1>.如果有double类型数据参与运算,整个表达式就是double类型;

    2>.否则,如果有float类型数据参与运算,整个表达式就是float类型;

    3>.否则,如果有long类型参与算数运算,整个表达式就是lang类型;

    4>.否则,整个表达式就是int类型;

  补充:算数表达式就是用算术运算符链接起来的式子,如:"int num1 = 10; int num2 = 20; int res = num1 + num2; ",其中res的结果就是一个算数表达式。

 

转载于:https://www.cnblogs.com/yinzhengjie/p/8679721.html

你可能感兴趣的文章
<20190516> 一次比较糟糕的售后维修体验(某硕主板)
查看>>
iOS网络篇2-http协议通信规则
查看>>
删除sql dump中的AUTO_INCREMENT
查看>>
使用JdbcTemplate和JdbcDaoSupport
查看>>
C博客作业--指针
查看>>
版本12.2.0.1.0数据库,复制种子数据库快速创建租户数据库PDB
查看>>
吴忠军中华演出网
查看>>
Page翻页分页css代码,分页div+css代码
查看>>
编程之美 第1章 游戏之乐——游戏中碰到的题目(十一)
查看>>
mysql for Mac 下创建数据表中文显示为?的解决方法
查看>>
Qt中插入html样式
查看>>
【译】Matplotlib:plotting
查看>>
2016阿里巴巴73款开源产品全向图
查看>>
Glibc 和 uClibc
查看>>
VMware 虚拟机的虚拟磁盘编程知识点扫盲之二
查看>>
vs2012中自带IIS如何让其他电脑访问
查看>>
关于termux在手机上搭载Linux系统,python,ssh
查看>>
Redux:异步操作
查看>>
Mysql学习第三课-分析二进制日志进行增量备份和还原
查看>>
2-11
查看>>