2012-09-04 86 views

回答

0

答案是否定的。 Java(不幸的是)不支持unsigned算術。

但是你仍然可以使用Java的int,並使你自己的方法做無符號算術,如this。更好的辦法是創建一個UnsignedInteger類,讓它處理所有的算術運算。

雖然我不知道它是否值得。你可以像jtahlborn建議的那樣使用long

+0

等價地,即使是32位的值(例如0xffffffff)也可以在您的查詢中'cast'到相應的unsigned int – paulsm4

+0

Guava有一個幫助類已經爲您寫了:[UnsignedInts](http://docs.guava- libraries.googlecode.com/git-history/release/javadoc/com/google/common/primitives/UnsignedInts.html)。 – yshavit

+1

@Onca - 我不知道他們爲什麼喋喋不休地說「Java Unsigned」和「Guava」。你問的問題是「我如何將它存儲在Derby DB中」?建議#1:「將它存儲爲一個有符號的32位int」(在這種情況下,Guava UnsignedInts可能適用 - 但我相信DerbyDB「cast()」可能更好!)。建議#2:將其存儲爲「長」(如jtalkborn建議)。 – paulsm4