如何将数字数组转换为二进制数?例如:
a=[1 0 1 0 1 0]
我想将它转换为二进制数。
b=101010
是否可以不用循环实现?也许这正是你想要的:
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()
)来实现。
bindig = '01'; bindig(a + 1)
。 - A. Dondachar(a+48)
可能会更快。(在Octave中可能快两倍) - Dan+'0'
的东西(以及回来的 - '0'
)是我在SO上学到的另一件事情 :-) - Luis Mendosprintf('%d',a)
char
来说,这有点过度了。 - Eitan T
bitget
、bitset
和在see also
下提到的那些函数。我还没有看到过确实需要使用字符串表示的情况,尽管人们总是问这样的问题。另外,使用字符串会更慢,消耗更多内存。 - sebastian