Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- class ShuffleBits
- {
- static void Main()
- {
- uint firstNumber = uint.Parse(Console.ReadLine()); // 123; // 321; // uint.Parse(Console.ReadLine());
- uint secondNumber = uint.Parse(Console.ReadLine()); // 321; // 123; // uint.Parse(Console.ReadLine());
- ulong result = 0;
- // Console.WriteLine(Convert.ToString(firstNumber, 2).PadLeft(32, '0'));
- // Console.WriteLine(Convert.ToString(secondNumber, 2).PadLeft(32, '0'));
- if (firstNumber >= secondNumber)
- {
- for (int i = 31; i >= 0; i--)
- {
- result = (result << 1) | ((firstNumber >> i) & 1);
- result = (result << 1) | ((secondNumber >> i) & 1);
- }
- }
- else
- {
- for (int i = 31; i >= 0; i -=2 )
- {
- // 1. solution
- result = (result << 2) | ((firstNumber >> i - 1) & 3);
- result = (result << 2) | ((secondNumber >> i - 1) & 3);
- // 2. solution. this also works
- //result = (result << 1) | ((firstNumber >> i) & 1);
- //result = (result << 1) | ((firstNumber >> i - 1) & 1);
- //result = (result << 1) | ((secondNumber >> i) & 1);
- //result = (result << 1) | ((secondNumber >> i - 1) & 1);
- }
- }
- Console.WriteLine(result);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment