给定一个数组,将等效二进制值转换为整数。
例如:[0,0,0,1]被视为0001,它是1的二进制表示。
例子:
Testing: [0, 0, 0, 1] ==> 1
Testing: [0, 0, 1, 0] ==> 2
Testing: [0, 1, 0, 1] ==> 5
Testing: [1, 0, 0, 1] ==> 9
Testing: [0, 0, 1, 0] ==> 2
Testing: [0, 1, 1, 0] ==> 6
Testing: [1, 1, 1, 1] ==> 15
Testing: [1, 0, 1, 1] ==> 11
但是,阵列可以具有不同的长度,而不仅限于4
。
普通方法:
using System;
namespace Solution
{
class Kata
{
public static int binaryArrayToNumber(int[] BinaryArray)
{
//Code here
double number = 0;
for (int i = 0; i < BinaryArray.Length; i++)
{
number+=Math.Pow(2, BinaryArray.Length-1-i)* BinaryArray[i];
}
return (int)number;
}
}
}
codewars巧妙方法:
using System;
namespace Solution
{
class Kata
{
public static int binaryArrayToNumber(int[] BinaryArray)
{
//将二进制装换成十进制
return Convert.ToInt32(string.Join("", BinaryArray), 2);
}
}
}