비트 001 과 0001을 구별해서 파일에 저장을 할려고 합니다.
그런데 이를 저장할려고 하니까...
별수없이 8비트가 만들어지면서 둘다 0000 0001로 되버립니다..
실제 파일에는 0010001~ 이런식으로 저장할려면
어떤 식으로 해야 할까요?... 몇일동안 헤맸는데....답을 못 얻겠습니다..
도움 주십시요..
비트 길이에 대한 정보가 없는데... 0010001 이런 식으로 저장하면 0010, 001인지 001, 0001인지 어떻게 알 방법이 없을 거 같은데요..-_-;
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
unsinged long과 같은 변수를 준비하시고, bit 단위로 읽고 쓰는 interface를 만듭니다. (bitwise AND, OR, XOR를 이용.)
그리고 이 변수가 다 차면 파일에 기록하면 됩니다.
#include <limits.h> struct bfile_ { /* ... */ int filedes; int bitpos; unsinged long buffer; }; typedef struct bfile_ BFILE; #define LONG_BIT (sizeof(long) * CHAR_BIT) BFILE *bopen(const char *filename); int bputb(BFILE *fp, int bit); int bgetb(BFILE *fp); int bclose(BFILE *fp);
뭐 이 정도로 만들 수 있지 않을까요.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html Korean Ver: http://cinsk.github.io/cfaqs/
아래 책에서 bit 단위 file io routine을 본 기억이 나는군요. 참고하세요~
The Data Compression Book,Second Edition Author(s): Mark Nelson and Jean-Loup Gailly Published by: M&T Books
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
비트 길이에 대한 정보가 없는데... 0010001 이런 식으로 저장하면
비트 길이에 대한 정보가 없는데... 0010001 이런 식으로 저장하면 0010, 001인지 001, 0001인지 어떻게 알 방법이 없을 거 같은데요..-_-;
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
unsinged long과 같은 변수를 준비하시고, bit 단위로 읽고
unsinged long과 같은 변수를 준비하시고, bit 단위로 읽고 쓰는 interface를 만듭니다. (bitwise AND, OR, XOR를 이용.)
그리고 이 변수가 다 차면 파일에 기록하면 됩니다.
뭐 이 정도로 만들 수 있지 않을까요.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
아래 책에서 bit 단위 file io routine을 본 기억이 나는군
아래 책에서 bit 단위 file io routine을 본 기억이 나는군요. 참고하세요~
The Data Compression Book,Second Edition
Author(s): Mark Nelson and Jean-Loup Gailly
Published by: M&T Books
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
댓글 달기