UInt.java 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package gnu.math;
  2. public class UInt extends UnsignedPrim implements Comparable<UInt> {
  3. int ival;
  4. public int numBits() { return 32; }
  5. public UInt(int ival) { this.ival = ival; }
  6. public static UInt valueOf(int ival) { return new UInt(ival); }
  7. public int intValue() { return ival; }
  8. public long longValue() { return (long) ival & 0xFFFFFFFFl; }
  9. public IntNum toIntNum() {
  10. return IntNum.valueOf(longValue());
  11. }
  12. public static String toString(int ival) {
  13. if (ival >= 0)
  14. return Integer.toString(ival);
  15. else
  16. return Long.toString(0xFFFFFFFFl & (long) ival);
  17. }
  18. public boolean equals(Object obj) {
  19. return obj instanceof UInt
  20. && ival == ((UInt) obj).ival;
  21. }
  22. public int compareTo(UInt other) {
  23. /* #ifdef JAVA8 */
  24. return Integer.compareUnsigned(ival, other.ival);
  25. /* #else */
  26. // int x = ival + Integer.MIN_VALUE;
  27. // int y = other.ival + Integer.MIN_VALUE;
  28. // return x < y ? -1 : x == y ? 0 : 1;
  29. /* #endif */
  30. }
  31. public String toString() { return toString(ival); }
  32. }