Advertisement
dentia

Neurons

Apr 3rd, 2014
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.74 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 Neurons
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             StringBuilder result = new StringBuilder();
  14.             string input = Console.ReadLine();
  15.             while (input != "-1")
  16.             {
  17.                 uint num = uint.Parse(input);
  18.                 char[] bin = Convert.ToString(num, 2).PadLeft(32, '0').ToCharArray();
  19.                 int left = 0;
  20.                 int right = 0;
  21.                 for (int i = 0; i < 32; i++)
  22.                 {
  23.                     if (bin[i] == '1')
  24.                     {
  25.                         left = i;
  26.                         break;
  27.                     }
  28.                 }
  29.                 for (int i = 31; i >= 0; i--)
  30.                 {
  31.                     if (bin[i] == '1')
  32.                     {
  33.                         right = i;
  34.                         break;
  35.                     }
  36.                 }
  37.  
  38.                 for (int i = 0; i < left; i++)
  39.                 {
  40.                     bin[i] = '1';
  41.                 }
  42.                 for (int i = 31; i > right; i--)
  43.                 {
  44.                     bin[i] = '1';
  45.                 }
  46.  
  47.                 if (left == 0 && right == 0)
  48.                 {
  49.                     for (int i = 0; i < 32; i++)
  50.                     {
  51.                         bin[i] = '1';
  52.                     }
  53.                 }
  54.  
  55.                 num = Convert.ToUInt32(new string(bin), 2);
  56.                 num = ~num;
  57.                 result.AppendLine(num.ToString());
  58.  
  59.                 input = Console.ReadLine();
  60.             }
  61.  
  62.             Console.WriteLine(result);
  63.         }
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement