首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将二进制字符串转换为二进制值或十进制值

将二进制字符串转换为二进制值或十进制值
EN

Stack Overflow用户
提问于 2012-10-15 17:04:00
回答 3查看 25.6K关注 0票数 23

有没有什么函数可以把二进制串转换成二进制值或十进制值?

如果我有一个二进制字符串000101,我应该怎么把它转换成5呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-15 17:59:21

您可以使用(在base包中) packBits函数。请记住,此函数需要非常具体的输入。

代码语言:javascript
复制
(yy <- intToBits(5))
#  [1] 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# [26] 00 00 00 00 00 00 00
# Note that there are 32 bits and the order is reversed from your example

class(yy)
[1] "raw"

packBits(yy, "integer")
# [1] 5

还有strtoi函数(也在base包中):

代码语言:javascript
复制
strtoi("00000001001100110000010110110111", base = 2)
# [1] 20121015

strtoi("000101", base = 2)
# [1] 5
票数 38
EN

Stack Overflow用户

发布于 2016-06-19 09:43:52

代码语言:javascript
复制
base::strtoi(binary_string, base = 2)
票数 15
EN

Stack Overflow用户

发布于 2012-10-15 17:25:58

此函数使用灵活的基数计算十进制版本。基数等于2是二进制,依此类推。这应该直到基数为10为止。

代码语言:javascript
复制
base2decimal = function(base_number, base = 2) {
  split_base = strsplit(as.character(base_number), split = "")
  return(sapply(split_base, function(x) sum(as.numeric(x) * base^(rev(seq_along(x) - 1)))))
}
> base2decimal(c("000101", "00000001001100110000010110110111"))
[1]        5 20121015
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12892348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档