Simplify conversion of numbers to unsigned
diff --git a/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java b/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
index 4063f44..0b4aa79 100644
--- a/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
+++ b/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
@@ -28,6 +28,8 @@
  *
  */
 class ArithmeticUtilsTest {
+    /** 2^63. */
+    private static final BigInteger TWO_POW_63 = BigInteger.ONE.shiftLeft(63);
 
     @Test
     void testGcd() {
@@ -538,7 +540,7 @@
     }
 
     private static long toUnsignedLong(int number) {
-        return number < 0 ? 0x100000000L + (long)number : (long)number;
+        return Integer.toUnsignedLong(number);
     }
 
     private static int remainderUnsignedExpected(int dividend, int divisor) {
@@ -550,7 +552,9 @@
     }
 
     private static BigInteger toUnsignedBigInteger(long number) {
-        return number < 0L ? BigInteger.ONE.shiftLeft(64).add(BigInteger.valueOf(number)) : BigInteger.valueOf(number);
+        return number < 0 ?
+            TWO_POW_63.or(BigInteger.valueOf(number & Long.MAX_VALUE)) :
+            BigInteger.valueOf(number);
     }
 
     private static long remainderUnsignedExpected(long dividend, long divisor) {