在這些日子裏,我試圖研究一個JVM字節碼。我發現在維基百科上描述的名爲FNEG
的操作碼:use to negate a float
。到底有什麼好處呢?我試圖對普通Java代碼中的變量進行否定處理,並且Eclipse向我報告了否定運算符未定義爲float類型的參數的錯誤。那麼它是爲了什麼?我如何使用它?JVM字節碼浮點否定:不允許但可能嗎?
1
A
回答
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
}
見3:FNEG,標準的javac。
+0
哦。我正在使用不同的操作員。 – user35443
+0
@ user35443你試過'!'?事實上,邏輯補碼沒有爲float指定。 –
+0
@ user35443 +1在我能想到的任何語言中只有一個否定運算符'-' –
相關問題
- 1. 允許浮點值輸入
- 2. 在節點加載後停止vis.js物理,但允許可拖動節點
- 3. OpenJDK JVM是否並行化字節碼?
- 4. Redis是否只允許字符串表示,但不允許數字值
- 5. 熱點JVM字節碼解釋器是一個跟蹤JIT嗎?
- 6. XPath只返回特定的子節點,但與父 - 可能嗎?
- 7. 節點:允許CORS的PUT
- 8. GridView分頁允許但禁用,可能嗎?
- 9. 不允許從節點讀取帖子
- 10. 字節碼注入可能有用嗎?
- 11. 字符串將不允許浮點/十進制數
- 12. 功能定義不允許/
- 13. 將FlexLM許可證從浮動更改爲節點鎖定
- 14. Spritekit(Swift)允許使用兩個不同的Camera節點嗎?
- 15. CakePHP的驗證號碼,以及浮點數,不應該允許字母
- 16. 是否可以使用JVM字節碼顯式釋放內存?
- 17. popUpButton is setEnabled:YES,但不允許點擊
- 18. Spring Security-允許GET但不允許POST
- 19. 只允許輸入浮點數
- 20. 文本框只允許浮點數
- 21. EF6 - 註釋允許空字符串,但不允許爲null
- 22. 允許小數點/句點輸入字段允許的字符
- 23. JS正則表達式允許點點劃線,但不允許並排
- 24. C++標準是否允許這種浮點行爲?
- 25. 不能添加XML節點,但可以附加字體
- 26. Django @override_settings不允許使用字典嗎?
- 27. 密碼功能不允許訪問
- 28. 自定義導航欄是否允許/可能?
- 29. Erlang:不允許的節點/也許Cookie問題
- 30. 輸入文本框字段只允許字符不允許數字,但允許空間?
咦? Java中肯定支持浮點數的否定。 –
如何? Eclipse引發我沒有 – user35443
*「我試圖在普通的Java代碼中對變量進行否定,Eclipse報告我錯誤,否定運算符未定義爲float類型的參數。」*嗯......它是:http:// pastie .org/6033481作品。我的猜測是,你只是有一個語法錯誤。如果你只是引用了一些代碼,那麼我們可以告訴你。 :-) –