use*_*443 1 java floating-point jvm bytecode
在这些日子里,我正在尝试研究JVM字节码.我发现FNEG在维基百科上描述了操作码:use to negate a float.到底有什么好处呢?我试图在普通Java代码中对变量进行否定,Eclipse报告错误,即对于float类型的参数,否定运算符是未定义的.那有什么用呢?我怎么用呢?
public class temp {
public static void main(String[] args) {
float a = 1.0f;
a = -a;
System.out.println(a);
}
}
Run Code Online (Sandbox Code Playgroud)
javap -c temp得到:
Compiled from "temp.java"
public class temp extends java.lang.Object{
public temp();
Code:
0: aload_0
1: invokespecial #8; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: fconst_1
1: fstore_1
2: fload_1
3: fneg
4: fstore_1
5: getstatic #16; //Field java/lang/System.out:Ljava/io/PrintStream;
8: fload_1
9: invokevirtual #22; //Method java/io/PrintStream.println:(F)V
12: return
}
Run Code Online (Sandbox Code Playgroud)
参见3:fneg,标准javac.
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |