diff --git a/DIRECTORY.md b/DIRECTORY.md index 342aa37ae..eeb50764b 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -89,6 +89,7 @@ * [DecimalToBinary](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/DecimalToBinary.java) * [DecimalToHexadecimal](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/DecimalToHexadecimal.java) * [DecimalToOctal](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/DecimalToOctal.java) + * [EndianConverter](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/EndianConverter.java) * [HexaDecimalToBinary](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/HexaDecimalToBinary.java) * [HexaDecimalToDecimal](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/HexaDecimalToDecimal.java) * [HexToOct](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/conversions/HexToOct.java) @@ -728,6 +729,7 @@ * [DecimalToBinaryTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/DecimalToBinaryTest.java) * [DecimalToHexadecimalTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/DecimalToHexadecimalTest.java) * [DecimalToOctalTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/DecimalToOctalTest.java) + * [EndianConverterTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/EndianConverterTest.java) * [HexaDecimalToBinaryTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/HexaDecimalToBinaryTest.java) * [HexaDecimalToDecimalTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/HexaDecimalToDecimalTest.java) * [HexToOctTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/conversions/HexToOctTest.java) diff --git a/src/main/java/com/thealgorithms/conversions/EndianConverter.java b/src/main/java/com/thealgorithms/conversions/EndianConverter.java new file mode 100644 index 000000000..d20d9d6d6 --- /dev/null +++ b/src/main/java/com/thealgorithms/conversions/EndianConverter.java @@ -0,0 +1,23 @@ +package com.thealgorithms.conversions; + +/** + * Converts between big-endian and little-endian formats. + * Big-endian is the most significant byte first, while little-endian is the least significant byte first. + * Big-endian to little-endian: 0x12345678 -> 0x78563412 + * + * Little-endian to big-endian: 0x12345678 -> 0x78563412 + * + * @author Hardvan + */ +public final class EndianConverter { + private EndianConverter() { + } + + public static int bigToLittleEndian(int value) { + return Integer.reverseBytes(value); + } + + public static int littleToBigEndian(int value) { + return Integer.reverseBytes(value); + } +} diff --git a/src/test/java/com/thealgorithms/conversions/EndianConverterTest.java b/src/test/java/com/thealgorithms/conversions/EndianConverterTest.java new file mode 100644 index 000000000..9598dd163 --- /dev/null +++ b/src/test/java/com/thealgorithms/conversions/EndianConverterTest.java @@ -0,0 +1,22 @@ +package com.thealgorithms.conversions; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +public class EndianConverterTest { + + @Test + public void testBigToLittleEndian() { + assertEquals(0x78563412, EndianConverter.bigToLittleEndian(0x12345678)); + assertEquals(0x00000000, EndianConverter.bigToLittleEndian(0x00000000)); + assertEquals(0x00000001, EndianConverter.bigToLittleEndian(0x01000000)); + } + + @Test + public void testLittleToBigEndian() { + assertEquals(0x12345678, EndianConverter.littleToBigEndian(0x78563412)); + assertEquals(0x00000000, EndianConverter.littleToBigEndian(0x00000000)); + assertEquals(0x01000000, EndianConverter.littleToBigEndian(0x00000001)); + } +}