Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- class GameOfBits
- {
- static void Main()
- {
- uint num = uint.Parse(Console.ReadLine());
- uint newNum = num;
- string binary = Convert.ToString(num, 2);
- Console.WriteLine(binary + " num");
- string command = Console.ReadLine();
- while (command != "Game Over!")
- {
- if (command == "Even")
- {
- num >>= 1;
- Console.WriteLine(Convert.ToString(num, 2).PadLeft(32, '0') + " num >>= 1");
- }
- newNum = ExtractBits(newNum, num);
- num = newNum;
- command = Console.ReadLine();
- }
- int count = 0;
- while (newNum > 0)
- {
- uint bit = newNum & 1;
- if (bit == 1)
- {
- count++;
- }
- newNum >>= 1;
- }
- Console.WriteLine("{0} -> {1}", num, count);
- }
- private static uint ExtractBits(uint newNum, uint num)
- {
- newNum = num & 1;
- Console.WriteLine(Convert.ToString(newNum, 2).PadLeft(32, '0') + " newNUm = num & 1");
- num >>= 2;
- Console.WriteLine(Convert.ToString(num, 2).PadLeft(32, '0') + " num >>= 2");
- int count = 1;
- while (num != 0)
- {
- uint mask = (num & 1);
- Console.WriteLine(Convert.ToString(mask, 2).PadLeft(32, '0') + " mask = (num & 1)");
- mask = mask << count;
- Console.WriteLine(Convert.ToString(mask, 2).PadLeft(32, '0') + " mask = mask << count");
- Console.WriteLine(Convert.ToString(newNum, 2).PadLeft(32, '0') + " newNum");
- newNum |= mask;
- Console.WriteLine(Convert.ToString(newNum, 2).PadLeft(32, '0') + " result of newNum |= mask");
- num >>= 2;
- count++;
- }
- return newNum;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment