0
所以我試圖取一個1和0的字符串,並將它轉換爲它的十進制數,就好像字符串是一個位串。我對Java相對不熟悉,所以我先用Python編寫函數,如下所示。它完美的作品。嘗試創建一個BitString(從Python到Java的翻譯)
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時,我提出了這個問題。
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.任何人都可以告訴我在這一點上我做錯了什麼?
非常感謝!完美的作品,你也可以解釋單引號和雙引號之間的區別是什麼? – user3015233
@ user3015233您可以使用單引號來定義字符文字,例如「a」,「1」,「c」,...,而雙引號用於定義字符串文字,例如「」a 「','」abc「'。可能會讓你煩惱的主要原因是'Python'沒有一個字符的概念。它只有字符串的概念。另一方面,'Java'在單個字符和字符串之間有所不同。 – svs