1
엔트로피 코딩 알고리즘을 프로그래밍 중이며 인코딩 된 문자와 같은 단일 비트를 파일에 쓰려고합니다. 예를 들어 파일에 011을 쓰고 싶지만 문자로 저장할 경우 3 비트 대신 3 바이트를 사용합니다. 그래서 마지막 질문은 : 어떻게 하나의 비트를 파일에 쓸 수 있습니까?C에서 파일에 단일 비트를 쓰는 방법
미리 감사드립니다.
엔트로피 코딩 알고리즘을 프로그래밍 중이며 인코딩 된 문자와 같은 단일 비트를 파일에 쓰려고합니다. 예를 들어 파일에 011을 쓰고 싶지만 문자로 저장할 경우 3 비트 대신 3 바이트를 사용합니다. 그래서 마지막 질문은 : 어떻게 하나의 비트를 파일에 쓸 수 있습니까?C에서 파일에 단일 비트를 쓰는 방법
미리 감사드립니다.
개별 비트를 파일에 쓸 수 없으며 해상도는 1 바이트입니다.
비트를 순서대로 쓰려면 전체 바이트가있을 때까지 비트를 일괄 처리 한 다음 쓰십시오. 사이비 코드 (C-같은 생각) 그 라인을 따라 것을 위해 : 당신의
currbyte = 0
bitcount = 0
def writeBit (bit):
currbyte = currbyte << 1 | bit
bitcount++
if bitcount == BITS_PER_BYTE:
write currbyte to file
currbyte = 0
bitcount = 0
이 변화에 개별 비트를 원하는, 당신은 다음, 바이트의 읽기를 조작 할 수 bitwise operations을 사용해야합니다 그것을 다시 써라.
수 없습니다. 최소한 1 바이트를 써야합니다. –