尝试创建位字符串(从Python到Java的转换)
因此,我尝试获取一个1和0的字符串,并将其转换为十进制等效值,就像该字符串是位字符串一样。我对Java相对不熟悉,所以我首先用Python编写了函数,如下所示。它工作得很好尝试创建位字符串(从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'
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');