각 캐릭터에 대해 동일한 수의 비트를 할당하는 인코딩 시스템
-
29-09-2020 - |
문제
텍스트 파일의 텍스트에서 변환 된 이진 문자열을 얻으려고하고 있지만 문제는 동일한 수의 비트로 표현할 각 문자가 필요하지만 그렇지 않습니다.내가 얻는 것은 ( 아래의 파이썬 코드와 해당 출력 을 참조하십시오).
예를 들어, Character i
는 7 비트 길이 인 1101001
로 표현되지만 문자 !
는 100001
가 6 비트 길이 인
각 문자는 동일한 양의 비트를 취하는 인코딩 / 디코딩 시스템이 있습니까?
content = open('a.txt', 'r').read()
test_str = content
# using join() + ord() + format() ... Converting String to binary
Binary = ' '.join(format(ord(i), 'b') for i in test_str)
#Decimal=int(Binary, 2)
# printing original string
print("The original string is : " + str(test_str))
# printing result
print("The string after Binary conversion : \n" + str(Binary))
.
출력 :
The original string is : Hi! Is there a solution?
The string after Binary conversion :
1001000 1101001 100001 100000 1001001 1110011 100000 1110100 1101000 1100101 1110010 1100101 100000 1100001 100000 1110011 1101111 1101100 1110101 1110100 1101001 1101111 1101110 111111
. 해결책
이 문제를 해결하는 일반적인 방법은 선행 0을 추가하는 것입니다.따라서 i
는 1101001
가 !
로 표현되는 동안 0100001
가 여전히 나타납니다.
디지털 시계가 6시 40 분 동안 06:40을 사용할 수있는 방법과 유사합니다.
제휴하지 않습니다 cs.stackexchange