算术指令及举例

2021-08-20  本文已影响0人  Shaw_Young

1、作用:

算术指令用于对两个操作数栈上的值进行某种特定运算,并把结果重新压入操作数栈。

2、分类

大体上算术指令可以分为两类:对整型数据进行运算的指令与对浮点类型数据进行运算的指令。

3、byte、short、char和boolean类型说明

在每一大类中,都有针对Java虚拟机具体数据类型的专用算术指令。但没有直接支持byte、short、char和boolean类型的算术指令,对于这些数据的运算,都使用int类型的指令来处理。此外,在处理boolean、byte、short和char类型的数组时,也会转换为使用对应的int类型的字节码指令来处理。


4、运算时的溢出

数据运算可能会导致溢出,例如两个很大的正整数相加,结果可能是一个负数。其实Java虚拟机规范并无明确规定过整型数据溢出的具体结果,仅规定了在处理整型数据时,只有除法指令以及求余指令中当出现除数为0时会导致虚拟机抛出异常ArithmeticException。

5、运算模式

6、NaN值使用

当一个操作产生溢出时,将会使用有符号的无穷大表示,如果某个操作结果没有明确的数学定义的话,将会使用NaN值来表示。而且所有使用NaN值作为操作数的算术操作,结果都会返回NaN。

所有的算术指令包括:

加法指令:iadd、ladd、fadd、dadd
减法指令:isub、lsub、fsub、dsub
乘法指令:imul、lmul、fmul、dmul
除法指令:idiv、ldiv、fdiv、ddiv
求余指令:irem、lrem、frem、drem //remainder:余数
取反指令:ineg、lneg、fneg、dneg //negation:取反
自增指令:iinc
位运算符,又可分为:

比较指令:dcmpg、dcmpl、fcmpg、fcmpl、lcmp

梦想很模糊,去追,它会渐变清晰。青春励志,奋斗下去别放弃。

上一篇 下一篇

猜你喜欢

热点阅读