相关疑难解决方法(0)

如何检查数字是否为2的幂

今天我需要一个简单的算法来检查一个数是否是2的幂.

算法需要是:

  1. 简单
  2. 纠正任何ulong价值.

我想出了这个简单的算法:

private bool IsPowerOfTwo(ulong number)
{
    if (number == 0)
        return false;

    for (ulong power = 1; power > 0; power = power << 1)
    {
        // This for loop used shifting for powers of 2, meaning
        // that the value will become 0 after the last shift
        // (from binary 1000...0000 to 0000...0000) then, the 'for'
        // loop will break out.

        if (power == number)
            return true;
        if (power > number)
            return false; …
Run Code Online (Sandbox Code Playgroud)

c# algorithm math

549
推荐指数
13
解决办法
21万
查看次数

在二进制浮点中可以表示哪些类型的数字?

我已经阅读了很多关于花车的内容,但这些都是不必要的.我我已经理解了它,但我只想知道一件事:

我知道1/pow(2,n),带有n整数的形式的分数可以用浮点数精确表示.这意味着,如果我自己增加1/32了3200万次,我会得到确切的结果1,000,000.

什么样的1/(32+16)?它是两个两个幂之和的一个,这有用吗?或者它1/32+1/16有效吗?这是我很困惑的地方,所以如果有人能为我澄清这一点我会很感激.

language-agnostic math floating-point

21
推荐指数
2
解决办法
4554
查看次数

标签 统计

math ×2

algorithm ×1

c# ×1

floating-point ×1

language-agnostic ×1