相关疑难解决方法(0)

如何在c/c ++中编写日志库(2)

有没有办法写log(base 2)函数?

C语言有2个内置函数 - >>

1. log基础e.

2. log10基数10;

但我需要基数2的日志功能.如何计算这个.

c c++

90
推荐指数
8
解决办法
20万
查看次数

在我的math.h中找不到log2?

我正在使用相当新的Visual C++ 2008 Express安装.

我正在尝试编译一个使用log2函数的程序,该程序是通过在Mac上使用Eclipse而找到的,但是这台Windows计算机找不到该函数(错误C3861:'log2':未找到标识符).

我理解它的方式,包括目录是IDE特有的,对吧?我的Microsoft SDKs\Windows\v6.0A\Include \目录中没有math.h,但我确实在这个目录中找到了math.h:Microsoft Visual Studio 9.0\VC\include.该目录中还有一个cmath ......

log2在哪里?

c math visual-studio

31
推荐指数
3
解决办法
7万
查看次数

快速找到基数2对数的整数部分

计算浮点数的基数2对数的整数部分的有效方法是什么?就像是

N = ceil( log2( f ))
Run Code Online (Sandbox Code Playgroud)

要么

N = floor( log2( f ))
Run Code Online (Sandbox Code Playgroud)

浮点数f.我想这可能会以某种方式非常有效地实现,因为可能只需要访问浮点指数.

编辑2:我对准确性并不感兴趣.我可以容忍+ -1的错误.我列举了这两个变种只是作为一个例子,因为一个可能在计算上比另一个更便宜(但我不知道).

我需要这个用于算法的精确控制,其中参数f是一些容差,并且需要日志来控制术语的数量.准确计算日志并不重要.

编辑:这不是要求整数参数的log2的其他许多问题的重复(例如,如何在C++中执行整数log2()?).这是关于浮点论证和完全不同的故事.具体来说,我需要f <1,这对于整数方法是不可能的

c c++ floating-point ieee-754

4
推荐指数
1
解决办法
267
查看次数

如何在Fortran中执行整数log2()?

一个显而易见的方法是:

integer function log2_i(val) result(res)
    implicit none
    integer, intent(IN) :: val

    if (val<0) then
        print *, "ERROR in log2_i(): val cannot be negative."
    else if (val==0) then
        print *, "ERROR in log2_i(): todo: return the integer equivalent of (-inf)..."
    else if (val==1) then
        res = 0
    else
        res = FLOOR( LOG(val+0.0d0)/LOG(2.0d0) )
    endif
end function log2_i
Run Code Online (Sandbox Code Playgroud)

使用Fortran的位移操作符有更好的方法吗?

这个问题几乎相同,但使用无符号整数.不幸的是,符号位将禁止使用相同的算法.

performance fortran bit-manipulation logarithm fortran90

2
推荐指数
1
解决办法
693
查看次数

如何在Ruby中找到exponent的值?

考虑下面的等式:

2**n = A.

我们假设A = 64.

找到n值的最简单方法是什么?

我目前正在使用以下两种方法

A= 64; n = 1; n+=1 while (A >> n) > 0; n-1

A= 64; n = 0; n+=1 until (A == ( 2 ** n));n
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

说明同样问题的其他方式:

2 =第n个根A如果我知道A的值,我该如何确定n的值?

ruby ruby-on-rails jruby

1
推荐指数
2
解决办法
2556
查看次数

计算log_2(n)的最快方法,其中n是2 ^ k的形式?

说我得到n = 32.我想知道log_2(n)是什么.在这种情况下,log_2(32)= 5.

一般来说,计算2 ^ k数的对数的最快方法是什么?

即给定n = 2 ^ k.log_2(n)= b.找到b.

允许按位操作.

c# math bit-manipulation

0
推荐指数
1
解决办法
459
查看次数