1. 程式人生 > >(C#)10進位制轉2進位制 數字1的個數

(C#)10進位制轉2進位制 數字1的個數

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        public static int getOneCount(int num)
        {
            if (num < 0)
            {
                return -1;
            }
            else if (num == 0)
            {
                return 0;
            }
            else
            {
                int tmp = 0;
                while (num != 0)
                {
                    if (num % 2 == 1)
                    {
                        num /= 2;
                        tmp++;
                    }
                    else
                        num /= 2;
                }
                return tmp;
            }
        }
        public static string getBinary(int num)
        {
            if (num < 0)
            {
                return "-1";
            }
            else if (num == 0)
            {
                return "0";
            }
            else
            {
                string a = "";
                while (num != 0)
                {
                    a = num % 2 + a;
                    num /= 2;
                }
                return a;
            }
        }
        static void Main(string[] args)
        {
            Console.WriteLine("{0, 8}", Program.getOneCount(-2));
            Console.WriteLine("{0, 8}", Program.getOneCount(0));
            Console.WriteLine("{0, 8}", Program.getOneCount(1));
            Console.WriteLine("{0, 8}", Program.getOneCount(2));
            Console.WriteLine("{0, 8}", Program.getOneCount(10));
            Console.WriteLine("{0, 8}", Program.getOneCount(12));
            Console.WriteLine("{0, 8}", Program.getOneCount(127));
            Console.WriteLine();
            Console.WriteLine("{0, 8}", Program.getBinary(-2));
            Console.WriteLine("{0, 8}", Program.getBinary(0));
            Console.WriteLine("{0, 8}", Program.getBinary(1));
            Console.WriteLine("{0, 8}", Program.getBinary(2));
            Console.WriteLine("{0, 8}", Program.getBinary(10));
            Console.WriteLine("{0, 8}", Program.getBinary(12));
            Console.WriteLine("{0, 8}", Program.getBinary(127));
        }
    }
}