获取二进制位置

时间:2019-12-26 06:59:45

标签: c# math

我想获取数字的二进制位置。

int val = 1 << 9; Console.WriteLine(val); //512

我现在拥有的是相反的。我的值是512,我想获取9

谢谢。

2 个答案:

答案 0 :(得分:1)

要查找二进制对数,您可以明确地执行以下任一操作:

  int value = 512;

  ...

  int result = (int) (Math.Log(value) / Math.Log(2));

或通过简单的循环:

  int value = 512;

  ... 

  int result = -1;

  for (; value != 0; value /= 2, ++result);

  Console.Write(result);

答案 1 :(得分:0)

  

Convert.ToInt32(String, Int32)可让您指定基数:

int output = Convert.ToInt32(input, 2);