Advertisement
ivanov_ivan

Untitled

Nov 7th, 2015
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.84 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace WiggleWiggle
  8.     {
  9.     class WiggleWiggle
  10.         {
  11.         static void Main()
  12.             {
  13.             //input
  14.             string[] inputNumbers = Console.ReadLine().Split(' ');
  15.             long[] numbers = new long[inputNumbers.Length];
  16.             for (int i = 0; i < inputNumbers.Length; i++)
  17.                 {
  18.                 numbers[i] = long.Parse(inputNumbers[i]);
  19.                 }
  20.             //Calculation
  21.             for (int i = 0; i < inputNumbers.Length; i += 2)
  22.                 {
  23.                 long bitOnEvenPositionFirstN = 0;
  24.                 long bitOnEvenPositionSecondN = 0;
  25.                 long evenBitsFirstNumber = 0;
  26.                 long evenBitsSecondNumber = 0;
  27.                 for (int j = 0; j < 64; j += 2)
  28.                     {
  29.                     bitOnEvenPositionFirstN = 1L & (numbers[i] >> (j));
  30.                     evenBitsFirstNumber |= bitOnEvenPositionFirstN << (j);
  31.                     bitOnEvenPositionSecondN = 1L & (numbers[i + 1] >> (j));
  32.                     evenBitsSecondNumber |= bitOnEvenPositionSecondN << (j);
  33.                     }
  34.                 numbers[i] |= evenBitsSecondNumber;
  35.                 numbers[i + 1] |= evenBitsFirstNumber;
  36.                 numbers[i] = ~numbers[i];
  37.                 numbers[i+1] = ~numbers[i+1];
  38.                 numbers[i] ^= 1L << 63;
  39.                 numbers[i+1] ^= 1L << 63;
  40.                 //Output
  41.                 Console.WriteLine(numbers[i]);
  42.                 Console.WriteLine(Convert.ToString(numbers[i], 2).PadLeft(63,'0'));
  43.                 Console.WriteLine(numbers[i + 1]);
  44.                 Console.WriteLine(Convert.ToString(numbers[i + 1], 2).PadLeft(63, '0'));
  45.                 }
  46.  
  47.             }
  48.         }
  49.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement