相关疑难解决方法(0)

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

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

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

1. log基础e.

2. log10基数10;

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

c c++

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

简单的Python挑战:数据缓冲区中最快的按位异或

挑战:

在两个大小相等的缓冲区上执行按位XOR.缓冲区将需要是python str类型,因为传统上它是python中数据缓冲区的类型.将结果值作为a返回str.尽快做到这一点.

输入是两个1兆字节(2**20字节)的字符串.

挑战是使用python或现有的第三方python模块(轻松的规则:或创建自己的模块)大幅击败我的低效算法.边际增加是无用的.

from os import urandom
from numpy import frombuffer,bitwise_xor,byte

def slow_xor(aa,bb):
    a=frombuffer(aa,dtype=byte)
    b=frombuffer(bb,dtype=byte)
    c=bitwise_xor(a,b)
    r=c.tostring()
    return r

aa=urandom(2**20)
bb=urandom(2**20)

def test_it():
    for x in xrange(1000):
        slow_xor(aa,bb)
Run Code Online (Sandbox Code Playgroud)

python algorithm performance xor

51
推荐指数
7
解决办法
2万
查看次数

仅用1位设置检测整数的优化

我有一个功能:

inline uint32_t ShiftOf(uint32_t v)
{
    for (uint32_t s = 0; s < 32; ++s)
    {
        if (v == 1 << s)
            return s;
    }
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法优化它?

c++ optimization

12
推荐指数
3
解决办法
1370
查看次数

"=="评估为大于1的任何C编译器?

作为任何非零值意味着真实的,但是>,<,==等运营商回归1真正的,我如果有任何显着的C编译器,当这些运营商可能会导致的值大于好奇1.

换句话说,是否有任何编译器int i = (a==b); 如果我打算不使用i不作为布尔值,而是作为一个整数,并假设它将是0或者1?会导致未定义的行为

c undefined-behavior

11
推荐指数
2
解决办法
1307
查看次数

找到最重要位的算法

嗨,谢谢你花时间回答我的问题.

我的一位朋友在接受采访时被问到以下问题:"给定一个二进制数,找到最重要的位".我立即想到了以下解决方案,但不确定它是否正确.

即,将字符串分成两部分并将两部分转换为十进制.如果左子阵列的小数为0,则在右子阵列中执行二进制搜索,查找1.

这是我的另一个问题.是最重要的位,二进制数中最左边的1?你能告诉我一个例子,当一个0是最重要的一个例子和解释时.

编辑:

在下面的答案中似乎有点混乱,所以我正在更新问题以使其更精确.采访者说"你有一个网站,你收到数据,直到最重要的位表示停止传输数据"你将如何告诉程序停止数据传输"

algorithm binary search

11
推荐指数
2
解决办法
3万
查看次数

如何使用按位运算符计算机记录基数2?

我需要在C中计算数字的日志基数2,但我不能使用数学库.答案不需要精确,只需要最接近的int.我已经考虑过了,我知道我可以使用while循环并继续将数字除以2,直到它<2,并保持迭代次数,但这是否可以使用按位运算符?

c bit-manipulation logarithm operator-keyword

9
推荐指数
2
解决办法
2万
查看次数

检查整数内是否只设置了一个位(无论其位置如何)

我使用64位整数内的位存储标志.
我想知道是否有一个位设置无论64位整数内的位置(ei我不关心任何特定位的位置).

boolean isOneSingleBitSet (long integer64)
{
   return ....;
}
Run Code Online (Sandbox Code Playgroud)

我可以使用Bit Twiddling Hacks(Sean Eron Anderson)计算位数,但我想知道检测单个位是否设置的最有效方法是什么...

我发现了一些其他相关的问题:

以及一些维基百科页面:

注意:我的应用程序是在java中,但我很好奇使用其他语言的优化...


编辑:琉永福指出我的问题在我的第一个链接已经得到了答案:请参见如果一个整数是2的幂确定位操作黑客(肖恩·安德森玉龙).我没有意识到单个位与2的幂相同.

java binary bit-manipulation bit bitwise-operators

7
推荐指数
2
解决办法
9461
查看次数