0
그래서 1과 0의 문자열을 가져 와서 문자열이 비트 문자열 인 것처럼 10 진수로 변환하려고합니다. 저는 Java에 익숙하지 않기 때문에 먼저 Python에서이 함수를 작성했습니다 (아래 참조). 그것은 완벽하게 작동합니다.BitString (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)
그러나 자바로 변환하려고 할 때, 나는 이것을 생각해 냈습니다.
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 ". 아마 당신을 괴롭히는 주요한 일은'파이썬'에는 문자의 개념이 없다는 것입니다. 문자열 만의 개념을 가지고 있습니다. 반면에 '자바'는 단일 문자와 문자열 사이의 차이를 만든다. – svs