最近、私は JVM バイトコードを研究しようとしています。FNEG
ウィキペディアに記載されているオペコードを見つけました: use to negate a float
. それは何のために良いですか?通常の Java コードで変数の否定を実行しようとしましたが、Eclipse から、float 型の引数に対して否定演算子が定義されていないというエラーが報告されます。それで、それは何のためですか?どのように使用できますか?
1 に答える
6
public class temp {
public static void main(String[] args) {
float a = 1.0f;
a = -a;
System.out.println(a);
}
}
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
}
fneg、標準 javac については、3: を参照してください。
于 2013-02-03T14:43:51.687 に答える