BitMap 및 BitValue 한정자

비트맵은 BitMap 및 BitValue 한정자를 사용하여 속성에 연결된 정수입니다. 속성 값의 각 비트는 BitValue 목록의 값 배열에 대한 인덱스 역할을 합니다. 속성 값의 여러 비트는 동시에 "켜기"일 수 있으므로 단일 속성 값을 사용하여 여러 동시 값을 나타낼 수 있습니다.

예를 들어 다음 MOF 코드 예제에서는 FileType 속성을 BitMap 및 BitValues 한정자를 갖는 것으로 설정합니다. 또한 하위 비트(비트 0)가 "읽기 전용" 값에 해당한다는 것을 추가로 설정합니다. 다음 비트(비트 1)는 "Hidden" 등에 해당합니다. (모든 비트가 중요해야 하는 것은 아닙니다. 이 8비트 시스템에서 6비트와 7의 상위 두 비트는 아무런 의미가 없습니다.)

[BitMap("0","1","2","3","4","5"),
 BitValues("Read Only",
           "Hidden",
           "System",
           "Volume Label",
           "Subdirectory",
           "Archive")]
byte FileType;

FileType 속성이 값 7(비트 0000 0111)을 보고하는 경우 파일은 "읽기 전용", "시스템" 및 "숨김"입니다. FileType 속성이 값 18(0x12 비트 0001 0010)을 보고하는 경우 숨겨진 하위 디렉터리입니다.

MOF 코드를 사용하는 비트맵에는 두 가지 유형이 있습니다.

  • 낮은 순서 비트(비트 0)로 시작하는 연속 중요 비트

    중요한 비트가 낮은 순서 비트(비트 0)로 시작하고 BitValue 배열의 모든 항목을 중단하지 않고 위쪽으로 진행되는 경우 중요한 비트를 명시적으로 지정하지 않고 비트 값 배열을 정의할 수 있습니다. 다음 MOF 코드 예제에서는 이전 예제와 동일한 함수를 수행합니다.

    [BitValues("Read Only",
               "Hidden",
               "System",
               "Volume Label",
               "Subdirectory",
               "Archive")]
    byte FileType;
    
  • 중요 비트 앞에는 중요하지 않은 비트가 있습니다.

    낮은 순서 비트가 중요하지 않거나 중요한 비트 시퀀스가 연속되지 않는 경우 BitMap 및 BitValues 한정자를 모두 지정해야 합니다. 다음 MOF 코드 예제에서는 낮은 순서 비트가 중요하지 않고 상당한 비트 시퀀스에 차이가 있는 상황을 보여 줍니다.

    [BitMap("1","4","5"),
     BitValues("Follow-up","Delivery receipt","Read receipt")]
    sint32 MailOptions;
    

    이 경우 낮은 순서 비트(비트 0)를 설정하는 것은 의미가 없으며 무시됩니다. 그러나 비트 1(0x2)을 설정하면 이 전자 메일 메시지의 추가 작업 플래그가 지정되고, 비트 4(0x8)를 설정하면 전자 메일 메시지가 받는 사람의 사서함에 도착했을 때 보낸 사람에게 배달 확인이 전송되어야 하며, 비트 5(0x10)를 설정하면 받는 사람이 전자 메일 메시지를 열 때 보낸 사람에게 읽음 확인이 전송되도록 지정됩니다. 세 개의 중요한 비트(0x1A)를 모두 설정하면 전자 메일 메시지의 세 가지 조건이 모두 지정됩니다.

발언

BitMap/BitValues 사용할지 또는 ValueMap /값 한정자를사용할지 결정할 때 표시되는 값이 동시에 발생할 수 있는지 여부를 결정합니다. 여러 동시 값이 있을 수 있는 경우 BitMap/BitValues사용해야 합니다. 모든 값이 상호 배타적인 경우 ValueMap/값 한정자를 사용해야 합니다.

ValueMap 및 값 한정자