diff --git a/Ghidra/Framework/Generic/src/main/java/ghidra/util/NumericUtilities.java b/Ghidra/Framework/Generic/src/main/java/ghidra/util/NumericUtilities.java index 992b5837ae..54c665712a 100644 --- a/Ghidra/Framework/Generic/src/main/java/ghidra/util/NumericUtilities.java +++ b/Ghidra/Framework/Generic/src/main/java/ghidra/util/NumericUtilities.java @@ -15,12 +15,13 @@ */ package ghidra.util; -import java.math.BigInteger; import java.util.*; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; import java.util.stream.Stream; +import java.math.BigInteger; + import org.apache.commons.collections4.IteratorUtils; import org.apache.commons.lang3.StringUtils; @@ -217,7 +218,7 @@ public final class NumericUtilities { */ public final static String toHexString(long value, int size) { if (size > 0 && size < 8) { - value &= -1L >> (8 * (8 - size)); + value &= -1L >>> (8 * (8 - size)); } return HEX_PREFIX_x + Long.toHexString(value); } diff --git a/Ghidra/Framework/Generic/src/test/java/ghidra/util/NumericUtilitiesTest.java b/Ghidra/Framework/Generic/src/test/java/ghidra/util/NumericUtilitiesTest.java index ec665cd2a8..cc63d8d81e 100644 --- a/Ghidra/Framework/Generic/src/test/java/ghidra/util/NumericUtilitiesTest.java +++ b/Ghidra/Framework/Generic/src/test/java/ghidra/util/NumericUtilitiesTest.java @@ -15,7 +15,8 @@ */ package ghidra.util; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; import java.util.*; import java.util.stream.Collectors; @@ -314,6 +315,13 @@ public class NumericUtilitiesTest { } + @Test + public void testToHexString() { + for (int sizeofValue = 1; sizeofValue <= 8; sizeofValue++) { + assertEquals("0x" + "ff".repeat(sizeofValue), NumericUtilities.toHexString(-1, sizeofValue)); + } + } + private void asssertBytesEquals(byte[] expected, byte[] actual) { String errorMessage = "Byte arrays not equal - exptected: " + Arrays.toString(expected) +