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

                                 作者:尹正杰

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

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

一.算数运算符的特点

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

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class Arithmetic{
public static void main(String[] args){
int num1,num2,result; //运算结果可能超出数据类型表示范围
num1 = 2147483647;
num2 = 1; result = num1 + num2;
System.out.println(result); //-2147483648
/**
num1的二进制为:
0111 1111 1111 1111 1111 1111 1111 1111
num2的二进制为:
0000 0000 0000 0000 0000 0000 0000 0001
+
----------------------------------------------
1000 0000 0000 0000 0000 0000 0000 0000
*/ num1 = -2147483648;
num2 = 1;
result = num1 - num2;
System.out.println(result); // } }

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

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

3>.除数为0的情况;

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class Arithmetic2{
public static void main(String[] args){ //除法,除数为0的情况
// System.out.println( 10 / 0 );
/**
整数相除,0作为除数时,编译没有语法错误
运行时产生算术异常:java.lang.ArithmeticException: / by zero
注意:
整数相除时,保证除数不能为0.
*/ //小数相除时,除数为0运行通过,但是结果不是一个数。
System.out.println( 10 / 0.0 ); //Infinity,表示无穷大
System.out.println( 10 / -0.0 ); //-Infinity
System.out.println( -10 / 0.0 ); //-Infinity
System.out.println( 0 / 0.0 ); //NaN,表示Not a Number
System.out.println( -0 / 0.0 ); //NaN } }

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

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

5>.自增与自减;

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class Arithmetic4{
public static void main(String[] args){ //自增与自减
/**
1>.自增与自减针对变量进行操作;
2>.自增就相遇变量的值加1,自减就是变量的值减1
*/ int x = 10;
x++; //相当于x = x + 1;
System.out.println(x); // x = 20;
x--; //相当于x = x - 1;
System.out.println(x); // }
}

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

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class Arithmetic5{
public static void main(String[] args){ int a;
//自增与自减有前缀和后缀两种形式
/**
++a 这是前缀形式
a-- 这是后缀形式
区别:
前缀形式先自增后运算
后缀形式是先参与运算再自增
*/
a = 10;
int b = ++a;
/**
前缀形式:
1>.先把变量a的值取出来加1
a = a +1;
现在的a的值为11
2>.再把变量a的值11赋值给变量b
*/
System.out.println(b); // a = 20;
b = a++;
/**
后缀形式:
1>.先把变量a的值保存在一个临时变量中
int temp = a; //temp = 10
2>.变量a进行自增
a = a + 1 //a = 11
3>.实际上是临时变量参与计算
b = temp; //b = 10
*/
System.out.println(b); //
}
}
 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class Arithmetic6{
public static void main(String[] args){ //面试题:
int x =10;
x = x++;
System.out.println(x); //打印的结果为什么会是10呢? /**
1>.int temp = x; //temp == 10
2>.等号右侧的变量x进行自增
x = x +1; //x = 11
3>.是把临时变量temp的值赋值给左侧的x变量
x = temp //x = 10
*/
}
}

这里有一道我在网上找的面试题,你可以戳进来哟!

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

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

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

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

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

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

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

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

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

Java基础-算术运算符(Arithmetic Operators)的更多相关文章

  1. Java基础-比较运算符Compare Operators

    Java基础-比较运算符Compare Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.关系运算符 关系运算符包括: 1>.大于(>) 2> ...

  2. Java基础-位运算符Bitwise Operators

    Java基础-位运算符Bitwise Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.位运算特点 位运算符分为按位与(&),按位或(|),按位异或(^ ...

  3. 初识java的算术运算符

    总所周知,算术运算符作为日常基本算法在我们上小学时接触到了,对加.减.乘.除熟练运用,这些基础算法也被引用到Java语言中.一般越基本的东西越重要,类比生活中的阳光,空气,水,土等... 闲话少叙,那 ...

  4. Java SE ---算术运算符

    算术运算符:(加)+,(减)-,(乘)*,(除)/,(求余)%,自增自减 一,算数运算符:当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型.如果参加运算的变量中有整型int ...

  5. java 基础one ---运算符and流程控制

    首先java这个了解下java的基础 首先java文件都是以.java结尾的  然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...

  6. Java基础(运算符)

    Java中的运算符: 算术运算符:+  -  *  /   %    ++     -- %运算符叫取模:它就是取余的例如:43%7=1 其他的都是和数学里的运算符一样(不过在字符串中如果是两个字符串 ...

  7. Java基础之 运算符

    前言:Java内功心法之运算符,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,J ...

  8. java基础(4)--运算符及表达式

    运算符及表达式 算数运算 加(+) 减(-) 乘(*)  除(/) 取余(%) 自增(++) 自减(- -) 注意点 1. 同种类型参与运算(可能需要自动类型转换),返回同种类型 2. 整数的除法是整 ...

  9. Java基础-5运算符

    一).算数运算符: 算术运算符的功能是做各种算术运算,其操作数可以是字符型.整型或浮点型数据. 运算符 运算 示例 结果 备注 + 加 5+5 10   - 减 4-2 2   * 乘 2*3 6 既 ...

随机推荐

  1. 文章翻译:Recommending items to more than a billion people(面向十亿级用户的推荐系统)

    Web上数据的增长使得在完整的数据集上使用许多机器学习算法变得更加困难.特别是对于个性化推荐问题,数据采样通常不是一种选择,需要对分布式算法设计进行创新,以便我们能够扩展到这些不断增长的数据集. 协同 ...

  2. [CF1019D]Large Triangle[极角排序+二分]

    题意 给出平面上 \(n\) 个点 \((x_i, y_i)\),问是否存在三个点构成的三角形的面积恰好为 \(S\) ,有的话,输出任意一组解即可. \(n\leq 2000\) 分析 BZOJ37 ...

  3. 命令行模式和python交互模式

    一.命令行模式 在Windows开始菜单选择“命令提示符”,就进入到命令行模式,它的提示符类似C:>:. 二.Python交互模式 在命令行模式下敲命令python,就看到类似如下的一堆文本输出 ...

  4. 巧用ios朗读kindle图书

    想必大家都有想过kindle出中文的有声阅读刊物吧? 今天突发奇想想到一招能够让我们听自己拿kindle买的中文图书.当然这是有条件的. 前提是你得有一个ios设备,不管是iphone还是ipad,i ...

  5. 前端示例MVC网站

    前端示例MVC网站 ASP.NET Zero 包含了一个公共web站点的前端页面和一个登陆页面.当您第一次运行项目的时候可以看到,如下图所示: 该前端网站有两个页面,一个是主页和关于我们.这些页面的内 ...

  6. idou老师教你学Istio: 如何用Istio实现K8S Egress流量管理

    本文主要介绍在使用Istio时如何访问集群外服务,即对出口流量的管理. 默认安装的Istio是不能直接对集群外部服务进行访问的,如果需要将外部服务暴露给 Istio 集群中的客户端,目前有两种方案: ...

  7. 企业落地Kubernetes的问题与对策

    在当今云计算领域,“容器技术”已经从三四年前的炒作期正式进入了产业落地期,而Kubernetes作为容器平台的标准已经得到了广泛应用. Kubernetes从2014年6月由Google宣布开源,到2 ...

  8. SCRUM 12.09 软件工程第二周计划

    第二轮迭代的第二周开始了,上一周我们进行了对代码优化的探索与自我审查. 本周,我们有以下两点目标要实现: 1.对客户端进行优化. 2.网络爬虫爬取美团外卖. 客户端优化主要开发人员:高雅智.牛强.彭林 ...

  9. 带状态论文粗读(三)[引用openstate的相关论文阅读]

    一 文章名称:FLOWGUARD: Building Robust Firewalls for Software-Defined Networks 发表时间:2014 期刊来源:--- 解决问题: 一 ...

  10. Mininet入门与实战 3.9参课记录

    Mininet入门与实战 Mininet简介 由来:斯坦福大学发明,基于Linux Container架构开发的进程虚拟化网络仿真工具,交换机支持OF协议. 使用情况: 控制器,不推荐自带控制器(bu ...