2014-12-21 6 views
1

엔트로피 코딩 알고리즘을 프로그래밍 중이며 인코딩 된 문자와 같은 단일 비트를 파일에 쓰려고합니다. 예를 들어 파일에 011을 쓰고 싶지만 문자로 저장할 경우 3 비트 대신 3 바이트를 사용합니다. 그래서 마지막 질문은 : 어떻게 하나의 비트를 파일에 쓸 수 있습니까?C에서 파일에 단일 비트를 쓰는 방법

미리 감사드립니다.

+0

수 없습니다. 최소한 1 바이트를 써야합니다. –

답변

4

개별 비트를 파일에 쓸 수 없으며 해상도는 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을 사용해야합니다 그것을 다시 써라.