diff --git a/core/src/main/java/org/bitcoinj/core/Utils.java b/core/src/main/java/org/bitcoinj/core/Utils.java index c6782edb..74c29f61 100644 --- a/core/src/main/java/org/bitcoinj/core/Utils.java +++ b/core/src/main/java/org/bitcoinj/core/Utils.java @@ -184,35 +184,40 @@ public class Utils { } } return rev; -} + } + /** Parse 4 bytes from the byte array (starting at the offset) as unsigned 32-bit integer in little endian format. */ public static long readUint32(byte[] bytes, int offset) { - return (bytes[offset++] & 0xFFL) | - ((bytes[offset++] & 0xFFL) << 8) | - ((bytes[offset++] & 0xFFL) << 16) | - ((bytes[offset] & 0xFFL) << 24); + return (bytes[offset] & 0xffl) | + ((bytes[offset + 1] & 0xffl) << 8) | + ((bytes[offset + 2] & 0xffl) << 16) | + ((bytes[offset + 3] & 0xffl) << 24); } - + + /** Parse 8 bytes from the byte array (starting at the offset) as signed 64-bit integer in little endian format. */ public static long readInt64(byte[] bytes, int offset) { - return (bytes[offset++] & 0xFFL) | - ((bytes[offset++] & 0xFFL) << 8) | - ((bytes[offset++] & 0xFFL) << 16) | - ((bytes[offset++] & 0xFFL) << 24) | - ((bytes[offset++] & 0xFFL) << 32) | - ((bytes[offset++] & 0xFFL) << 40) | - ((bytes[offset++] & 0xFFL) << 48) | - ((bytes[offset] & 0xFFL) << 56); + return (bytes[offset] & 0xffl) | + ((bytes[offset + 1] & 0xffl) << 8) | + ((bytes[offset + 2] & 0xffl) << 16) | + ((bytes[offset + 3] & 0xffl) << 24) | + ((bytes[offset + 4] & 0xffl) << 32) | + ((bytes[offset + 5] & 0xffl) << 40) | + ((bytes[offset + 6] & 0xffl) << 48) | + ((bytes[offset + 7] & 0xffl) << 56); } + /** Parse 4 bytes from the byte array (starting at the offset) as unsigned 32-bit integer in big endian format. */ public static long readUint32BE(byte[] bytes, int offset) { - return ((bytes[offset] & 0xFFL) << 24) | - ((bytes[offset + 1] & 0xFFL) << 16) | - ((bytes[offset + 2] & 0xFFL) << 8) | - (bytes[offset + 3] & 0xFFL); + return ((bytes[offset] & 0xffl) << 24) | + ((bytes[offset + 1] & 0xffl) << 16) | + ((bytes[offset + 2] & 0xffl) << 8) | + (bytes[offset + 3] & 0xffl); } + /** Parse 2 bytes from the byte array (starting at the offset) as unsigned 16-bit integer in big endian format. */ public static int readUint16BE(byte[] bytes, int offset) { - return ((bytes[offset] & 0xff) << 8) | bytes[offset + 1] & 0xff; + return ((bytes[offset] & 0xff) << 8) | + (bytes[offset + 1] & 0xff); } /**