diff options
Diffstat (limited to 'challenge-120/ziameraj16/java/SwapOddEvenBits.java')
| -rw-r--r-- | challenge-120/ziameraj16/java/SwapOddEvenBits.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/challenge-120/ziameraj16/java/SwapOddEvenBits.java b/challenge-120/ziameraj16/java/SwapOddEvenBits.java new file mode 100644 index 0000000000..115493de32 --- /dev/null +++ b/challenge-120/ziameraj16/java/SwapOddEvenBits.java @@ -0,0 +1,23 @@ +import java.util.Scanner; + +public class SwapOddEvenBits { + + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + System.out.println("Enter the number"); + int number = scanner.nextInt(); + System.out.println(swap(number)); + } + + public static int swap(int number) { + final String binaryString = Integer.toBinaryString(number); + String formattedString = String.format("%0"+ (8 - binaryString.length() ) + "d%s", 0 , binaryString); + StringBuilder sb = new StringBuilder(formattedString); + for (int i = 0; i < 7; i += 2) { + char temp = formattedString.charAt(i); + sb.replace(i, i + 1, String.valueOf(formattedString.charAt(i + 1))); + sb.replace(i + 1, i + 2, String.valueOf(temp)); + } + return Integer.parseInt(sb.toString(), 2); + } +} |
