【问题标题】:convert integer to binary number in numba在numba中将整数转换为二进制数
【发布时间】:2020-05-21 18:11:25
【问题描述】:

我正在使用 numba,并且想将整数转换为二进制表示。在普通的 python 中,我会使用 bin() 或 np.binary_repr()。但这些在 numba 中不受支持。有什么建议吗?我应该从头开始用 numba 编写一个转换器吗?

【问题讨论】:

  • 这些函数都返回字符串。由于 Numba 不是专门处理字符串的,并且对于某些字符串方法比纯 Python 慢,也许这不是你代码中首先要使用 Numba 加速的部分吗?
  • 二进制部分嵌入在一个计算量很大的函数中,所以我希望它在 numba 中。我最终编写了自己的转换器。

标签: numba


【解决方案1】:

如果你仍然对这个 fn 通过 numba 生成 bin 数组感兴趣:

其中 size_of_bin 超出长度。


from numba import njit, prange
import numpy as np


@njit(fastmath=True)
def num_to_binary(number, size_of_bin = 32):
    out = np.zeros(size_of_bin)
    num = number
    index = 31

    for i in prange(size_of_bin):
        floatDivide = num // 2
        divide = num / 2
        if floatDivide != divide:
            out[index] = 1
    
        num = floatDivide
        
        index-= 1
        if index == -1 or floatDivide == 0:
            break

    return out

    

【讨论】:

  • 你一定是在开玩笑。首先,这不是被问到的问题。其次,很难想出更糟糕的方法来完成这项任务。浮动师??第三,// 是整数除法,与您的变量名相反。你不知道num & 1 会给你低位而不需要算术吗?
  • 如果您有新问题,请点击 按钮提出问题。如果有助于提供上下文,请包含指向此问题的链接。 - From Review
猜你喜欢
  • 2012-04-10
  • 2021-11-03
  • 2012-05-11
  • 2015-09-21
  • 2017-10-29
  • 1970-01-01
  • 2017-07-13
  • 2018-10-10
相关资源
最近更新 更多