将数字数组转换为二进制数

Posted

技术标签:

【中文标题】将数字数组转换为二进制数【英文标题】:Convert array of digits to a binary number 【发布时间】:2013-11-08 20:10:54 【问题描述】:

如何?例如:

a=[1 0 1 0 1 0]

我想转换成二进制数

b=101010

可以不用循环吗?

【问题讨论】:

不要使用字符串表示来做任何你想做的事情,你可能想检查bitgetbitsetsee also下提到的函数。我还没有看到一个案例,确实有必要使用字符串表示,但是人们一直在问这样的问题。此外,使用字符串会更慢,而且会占用更多内存。 【参考方案1】:

也许这就是你想要的:

char(a+'0')

例子:

>> a=[1 0 1 0 1 0]

a =

     1     0     1     0     1     0

>> char(a+'0')

ans =

101010

这是通过将每个数字转换为其 ASCII 代码 (+'0'),然后将结果数字的向量转换为字符串 (char()) 来实现的。

【讨论】:

为了避免依赖 ASCII 的特性,一个替代方案是bindig = '01'; bindig(a + 1) 如果速度是一个问题,char(a+48) 可能会更快。 (在 Octave 中快两倍) @rayryeng 谢谢! +'0' 的事情(以及返回的 -'0')是我在 SO 中学到的另一件事 :-)【参考方案2】:

您可以将其转换为字符串:

sprintf('%d',a)

我认为这是逻辑数组的唯一替代方案。

【讨论】:

不错,但不是最好的选择:) @DanielR 与char 相比,这有点过头了。

以上是关于将数字数组转换为二进制数的主要内容,如果未能解决你的问题,请参考以下文章

如何将二进制表示的数字转换为雪花数

c语言编写一程序,以字符串形式输入十进制数,将字符串对应的十进制数转换成二进制数,将得到的结果输出。

将十进制数转换为二进制数----不用数组,也不用函数,只用循环

在页面js 中,怎么将中文字符串转换成2个字节长度16进制数;并在js 环境下解码16进

怎么把数字转为二进制数

python我怎么把数组里面的每个字符串转换成16进制数啊