首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试创建一个BitString (从Python的转换)

尝试创建一个BitString (从Python的转换)
EN

Stack Overflow用户
提问于 2013-11-22 03:08:22
回答 1查看 158关注 0票数 0

所以我尝试取一个1和0的字符串,并把它转换成十进制的等价物,就好像字符串是位字符串一样。我对Java比较陌生,所以我首先用Python编写了函数,如下所示。它工作得很完美。

代码语言:javascript
复制
def stringToBitString(bs):
    #
    # bs = "10101"
    #
    ans = 0       # 32 bits of 0

    for bit in bs:
        ans = (ans << 1) | (ord(bit) - ord('0'))
    return (and)

但是,在尝试将其转换为Java时,我想出了这个问题。

代码语言:javascript
复制
public int toInt(String path) {

    int answer = 0;

    for(int i = 0; i < path.length(); i++) {

        int bit = path.charAt(i);
        answer = (answer << 1) | (bit - 0);
    }
    return answer;        
}

这个方法确实给了我一个int,但是以ASCII的形式出现。例如,stringToBitString("1")产生1,而toInt("1")产生48。有人能告诉我现在我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-22 03:11:48

您所做的是将'1''0'减去具有ASCII值的49480,从而导致4948

代码语言:javascript
复制
char bit = path.charAt(i);
answer = (answer << 1) | (bit - '0');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20136296

复制
相关文章

相似问题

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