using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 二轉十
{
class Program
{
/// <summary>
/// 求次方
/// </summary>
/// <param name="number">那個數的次方</param>
/// <param name="cifang">幾次方</param>
/// <returns>number^cifang</returns>
static int CiFang(int number,int cifang)
{
int returnValue = 0; // 返回值
if (number == 0) // 0的次方都是0
{
return returnValue;
}
if (cifang == 0) // 任何數的0次方都是1
{
returnValue = 1;
return returnValue;
}
if (cifang == 1) // 任何數的1次方都是任何數
{
returnValue = number;
return returnValue;
}
returnValue = number;
//
for (int i = 1; i < cifang; i++)
{
//次方
returnValue *= number;
}
//返回最終結果
return returnValue;
}
static void Main(string[] args)
{
int[] randomInts = new int[5];
Random r = new Random();
for (int i = 0; i < randomInts.Length; i++)
{
randomInts[i] = r.Next(0, 2);
}
//遍歷
foreach (int i in randomInts)
{
Console.Write(i);
}
Console.WriteLine();
Console.WriteLine("====================");
//弄一個10個數值 0~1
int number = 0;
//使用按位展開法逆向得出10進制
for (int i = 0; i < randomInts.Length; i++)
{
//1. 獲取一個二進制位
// if (randomInts[i] == 0)
// {
// number += CiFang(0, randomInts.Length - 1 - i);
// }
//else
// {
// number += CiFang(2, randomInts.Length - 1 - i);
// }
number += CiFang((randomInts[i] == 0) ? 0 : 2, randomInts.Length - 1 - i);
// 2. 得知是N次方
}
Console.WriteLine(number);
}
}
}
C#實現二進制轉10進制
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.