2013-02-23 3 views
1

코드에 비트 문자열을 구현해야합니다 (일부 표준에 제공된 매개 변수에 따라).C 언어의 비트 문자열

표준 매개 변수 중 일부는 비트 문자열 (다른 길이 = 3, 7, 24, 1024 등)입니다.

내가 그들을 정의 : 나는 비트 필드를 사용하도록 허용하고 있지 않다

#define SIZE 1 

struct bt_string 
{  
    /* Array will be min 1 Byte Long, 
    * this parameter stores the number of Bits 
    * actually being used */ 
    unsigned short int bit_length; 

    char bit_string [SIZE]; 
} sample_bit_string; 

: (길이 3의 비트 문자열 예).

누군가 가능한 한 더 좋은 방법을 제안 할 수 있습니까?

+4

정확한 요구 사항은 무엇입니까? 어떤 부분에서 문제가 있습니까? –

+0

위의 구현은 저에게 효과적입니다. C 표준은 1 비트 길이의 변수를 데칼 링 할 수있는 방법이 없다는 것을 증명하기 때문에 가능하면 더 나은 접근법을 찾고있었습니다. –

+0

비트 스트링 클래스를 구현하는 데는 여러 가지 방법이있을 수 있지만 "더 나은"측정 방법이 없으면이를 비교할 수 없습니다. –

답변

3

당신이 찾고있는 비트 맵이 있다고 가정합니다. (wiki : http://en.wikipedia.org/wiki/Bitmap) 그리고 샘플은 리눅스 커널에서 이식되었습니다 : http://code.google.com/p/ulib/source/browse/trunk/src/base/bitmap.c.

+0

감사합니다. Eric. 위의 구현은 비트 맵에만 가깝습니다. 내가 7 비트 길이의 비트 스트링을 필요로한다면, 나는 1 바이트 길이의 어레이를 취하고 7 비트만을 설정하기위한 비트 카운트를 유지할 것이다. 비트 맵에도 동일한 입력이 필요합니다. –