2012-10-11 3 views
0

텍스트 파일을 비트별로 두 개의 다른 파일로 분할하는 방법은 무엇입니까? 00001100 와 B는 다음과 같습니다 :비트 단위로 텍스트 파일을 두 파일로 분할하는 방법

0101010111110000

은 다음이 될 것 파일 : 파일 X 인 경우 나, 즉 B의 파일 A의 모든 짝수 비트와 모든 이상한 것들을 필요로 11111100

그런 다음 .txt 파일로 저장해야합니다. 그 후에 다시 합쳐야 X를 다시 얻을 수 있습니다.

나는 c를 사용하고있다. 개봉 코드 문자

에 의해

#include <stdio.h> 

void printchar(unsigned char to_print) 
{ 
    unsigned char mask = 0x80; 
    for(int i = 0; i < 8; ++i) 
    { 
     if((mask & to_print) > 0) 
     { 
      printf("%d", 1); 
     } 
     else 
     { 
      printf("%d", 0); 
     } 
     mask = mask >> 1; 
    } 
    printf("\n"); 
} 

void split(unsigned char * left, unsigned char * right, unsigned char input1, unsigned char input2) 
{ 
    unsigned char mask = 0x80; 
    for(int i = 0; i < 4; ++i) 
    { 
     (*left) |= ((input1 & mask) << i); 
     (*left) |= ((input2 & mask) >> (4-i)); 

     mask = mask >> 1; 

     (*right) |= ((input1 & mask) << (i+1)); 
     (*right) |= ((input2 & mask) >> (3-i)); 

     mask = mask >> 1; 

    } 
} 

int main (int argc, const char * argv[]) 
{ 
    unsigned char left = 0; 
    unsigned char right = 0; 
    unsigned char input1 = 0xA6; 
    unsigned char input2 = 0xB5; 

    split(&left, &right, input1, input2); 
    printchar(left); 
    printchar(right); 
    return 0; 
} 
+1

코드 벽이 있으니 그게 뭐가 잘못 되었습니까? 그것을 컴파일하지 못하면 실행되면 불평없이 실행하지만 잘못된 일을 ...? –

답변

0

읽기 문자는 완전히 당신이 필요로하는 2 개 문자로 구축 홀수 비트 와도 다른 두 개의 버퍼 문자 하나를 만들 다음과 같이 지금까지이 코드는 입력 파일에서 4 문자를 읽었을 때 을 작성한 2 개의 문자를 쓸 수 있기 때문에 같은 접근 방식이지만 역순으로는 하나의 문자로

을 입력 할 수 있습니다. 짝수/홀수 비트를 읽거나 쓰는 순서에주의해야합니다.

관련 문제