diff --git a/src/main/java/net/agkn/hll/serialization/BigEndianAscendingWordDeserializer.java b/src/main/java/net/agkn/hll/serialization/BigEndianAscendingWordDeserializer.java index 5bbaa6a..6b04771 100644 --- a/src/main/java/net/agkn/hll/serialization/BigEndianAscendingWordDeserializer.java +++ b/src/main/java/net/agkn/hll/serialization/BigEndianAscendingWordDeserializer.java @@ -100,7 +100,7 @@ private long readWord(final int position) { } // First bit of the word - final long firstBitIndex = (position * wordLength); + final long firstBitIndex = ((long)position) * ((long)wordLength); final int firstByteIndex = (bytePadding + (int)(firstBitIndex / BITS_PER_BYTE)); final int firstByteSkipBits = (int)(firstBitIndex % BITS_PER_BYTE); diff --git a/src/main/java/net/agkn/hll/serialization/BigEndianAscendingWordSerializer.java b/src/main/java/net/agkn/hll/serialization/BigEndianAscendingWordSerializer.java index 3ad7ce1..367e677 100644 --- a/src/main/java/net/agkn/hll/serialization/BigEndianAscendingWordSerializer.java +++ b/src/main/java/net/agkn/hll/serialization/BigEndianAscendingWordSerializer.java @@ -86,7 +86,7 @@ public BigEndianAscendingWordSerializer(final int wordLength, final int wordCoun this.wordLength = wordLength; this.wordCount = wordCount; - final long bitsRequired = (wordLength * wordCount); + final long bitsRequired = ((long)wordLength) * ((long)wordCount); final boolean leftoverBits = ((bitsRequired % BITS_PER_BYTE) != 0); final int bytesRequired = (int)(bitsRequired / BITS_PER_BYTE) + (leftoverBits ? 1 : 0) + bytePadding; bytes = new byte[bytesRequired];