尝试创建位字符串(从Python到Java的转换)

尝试创建位字符串(从Python到Java的转换),java,python,string,bitstring,Java,Python,String,Bitstring,因此,我尝试获取一个1和0的字符串,并将其转换为十进制等效值,就像该字符串是位字符串一样。我对Java相对不熟悉,所以我首先用Python编写了函数,如下所示。它工作得很好 def stringToBitString(bs): # # bs = "10101" # ans = 0 # 32 bits of 0 for bit in bs: ans = (ans << 1) | (ord(bit) - ord('0'

因此,我尝试获取一个1和0的字符串,并将其转换为十进制等效值,就像该字符串是位字符串一样。我对Java相对不熟悉,所以我首先用Python编写了函数,如下所示。它工作得很好

def stringToBitString(bs):
    #
    # bs = "10101"
    #
    ans = 0       # 32 bits of 0

    for bit in bs:
        ans = (ans << 1) | (ord(bit) - ord('0'))
    return (and)
def stringtobittstring(bs):
#
#bs=“10101”
#
ans=0#0的32位
对于bs中的位:

ans=(ans您所做的是将具有ASCII值
49
48
'1'
'0'
减去
49
48

char bit = path.charAt(i);
answer = (answer << 1) | (bit - '0');
charbit=path.charAt(i);

答案=(回答:非常感谢!非常有效,您能解释一下单引号和双引号的区别吗?@user3015233您只能使用单引号定义字符文字,如
'a'
'1'
'c'
,…,而双引号用于定义字符串文字,如
'a“
“abc”
。可能困扰您的主要问题是
Python
没有字符的概念。它只有字符串的概念。
Java
,另一方面,在单个字符和字符串之间产生了差异。
char bit = path.charAt(i);
answer = (answer << 1) | (bit - '0');