Advertisement
ToDiR0S

BitInverter

Aug 24th, 2014
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.28 KB | None | 0 0
  1. using System;
  2.  
  3. class BitsInverter
  4. {
  5.     static void Main()
  6.     {
  7.         byte n = byte.Parse(Console.ReadLine());
  8.         byte step = byte.Parse(Console.ReadLine());
  9.  
  10.         byte[] numbersArr = new byte[n];
  11.  
  12.         byte mask = 1;
  13.         byte bitToInvert = 0;
  14.         byte byteCounter = 8;
  15.         byte bitCounter = 0;
  16.         byte counter = 0;
  17.  
  18.         for (byte i = 0; i < n; i++)
  19.         {
  20.             numbersArr[i] = byte.Parse(Console.ReadLine());
  21.         }
  22.  
  23.         for (byte i = 0; i < numbersArr.Length; i++ )
  24.         {
  25.             for (byte y = bitCounter; ; y++)
  26.             {
  27.                 bitToInvert = (byte)(byteCounter - (1 + (y * step)));
  28.  
  29.                 if (bitToInvert < byteCounter)
  30.                 {
  31.                     mask = (byte)(mask << bitToInvert);
  32.  
  33.                     numbersArr[i] = (byte)(numbersArr[i] ^ mask);
  34.                     mask = (byte)(mask >> bitToInvert);
  35.                     counter += 1;
  36.                 }
  37.                 else
  38.                 {
  39.                     break;
  40.                 }
  41.             }
  42.             bitCounter = counter;
  43.             byteCounter += 8;
  44.         }
  45.  
  46.         for (int i = 0; i < numbersArr.Length; i++)
  47.         {
  48.             Console.WriteLine(numbersArr[i]);
  49.         }
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement