======================================================
注:本文源代码点此下载
======================================================
java虚拟机提供几种进行整数算术运算的操作码,他们执行基于int和long类型的运算。当byte、short和char类型值参与算术运算时,首先会将它们转换为int类型。这些操作码都不会抛出异常,溢出在这里通常可以被忽略。
整数加法
操作码
操作数
说明
iadd
(无)
从栈中弹出两个int类型数,相加,然后将所得int类型结果压回栈
ladd
(无)
从栈中弹出两个long类型数,相加,然后将所得long类型结果压回栈
将一个常量与局部变量相加
操作码
操作数
说明
iinc
vindex,const
把常量与一个位于vindex位置的int类型局部变量相加
wide
iinc,index,const
把常量与一个位于vindex位置的int类型局部变量相加
iinc可以用来给局部变量赋值-128~127之间的值。这条操作码与用于控制循环执行的变量的加减相比,效率更高。加上wide可以用来把常量的范围增大到-32768~32767。
整数减法
操作码
操作数
说明
isub
(无)
从栈中弹出两个int类型数,相减,然后将所得int类型结果压回栈
lsub
(无)
从栈中弹出两个long类型数,相减,然后将所得long类型结果压回栈
从栈顶弹出两个数,顶端的充当减数,次顶端的充当被减数。
整数乘法
操作码
操作数
说明
imul
(无)
从栈中弹出两个int类型数,相乘,然后将所得int类型结果压回栈
lmul
(无)
从栈中弹出两个long类型数,相乘,然后将所得long类型结果压回栈
整数除法
操作码
操作数
说明
idiv
(无)
从栈中弹出两个int类型数,相除,然后将所得int类型结果压回栈
ldiv
(无)
从栈中弹出两个long类型数,相除,然后将所得long类型结果压回栈
从栈顶弹出两个数,次顶端的数除以顶端的数(首先被压入栈的数作为被除数或者分子,其次被压入的数作为除数或者分母)。如果整数被0除,会抛出arithmeticexception异常。
整数取余
操作码
操作数
说明
irem
(无)
从栈中弹出两个int类型数,相减,然后将所得int类型余数压回栈
lrem
(无)
从栈中弹出两个long类型数,相减,然后将所得long类型余数压回栈
如果整数被0除,会抛出arithmeticexception异常。
操作码
操作数
说明
ineg
(无)
从栈中弹出两个int类型数,取反,然后将所得int类型结果压回栈
lneg
(无)
从栈中弹出两个long类型数,取反,然后将所得long类型结果压回栈
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
766

被折叠的 条评论
为什么被折叠?



