부울 플래그

Boolean flag

컴퓨터 과학에서 부울 플래그, 진실 비트 또는 진실 플래그는 하나 이상의 비트로 표현되는 부울 값이며, 두 개의 가능한 값으로 상태 변수를 인코딩합니다.

메모리 사용량

1바이트는 1개의 부울 플래그를 각 비트에 매핑하여 최대 8개의 부울 플래그를 포함할 수 있으므로 매우 경제적이고 고밀도 데이터 저장 방법이 됩니다.이를 패킹된 표현 또는 비트패킹이라고 하며 사용되는 바이트당 부울 플래그가 1개뿐인 반대쪽 인코딩을 스파스 표현이라고 합니다.바이트 주소 지정 가능 메모리의 경우, 패킹된 표현은 각 바이트의 개별 플래그를 액세스하기 위해 비트 마스크와 비트 시프트가 필요하며, 이는 추가 명령이 필요할 수 있지만, 스파스 표현은 비트 마스킹이 필요하지 않습니다.패킹된 표현은 하드웨어 및 프로세서 레지스터에서 비트필드[1] 더 많이 볼 수 있는 반면, 패킹된 표현은 소프트웨어에서 1바이트 이상의 폭의 변수로 더 많이 볼 수 있지만, [2]패킹된 표현도 지원됩니다.

효율성.

대부분의 컴퓨터 언어는 진실 표시기로 사용하기 위해 단일 또는 여러 비트를 조합하여 설정 및 테스트를 지원합니다.일반적으로 비트 단위 연산을 사용하여 1바이트의 명령어 1개로 최대 256개의 다른 조건 조합을 테스트할 수 있습니다.프로세서 설계와 병렬 컴퓨팅의 진보는 부울 플래그의 부울 대수 연산을 더 많이 실행할 수 있음을 의미하며, 종종 컴파일러 고유[3]함수로 프로그래밍 언어로 구현되는 SIMD 기술을 사용하여 하나의 명령으로 실행할 수 있습니다.

사용.

때때로 프로그램은 특정 조건이 검출되었을 때 여러 개의 중첩된 조건문(예: 조건문)이 아닌 단순히 플래그를 설정하도록 작성됩니다.ifs) 상당히 복잡해질 수 있습니다.모든 조건이 테스트되고 모든 플래그가 적절히 켜지거나 꺼지면 변수 대신 플래그를 참조하여 다양한 조건 조합에 대해 테스트를 시작할 수 있다.이것에 의해, 처리가 큰폭으로 심플하게 되어, 메모리내의 바이너리 표현에 매핑 하는 것으로 의사 결정 테이블을 실장할 수 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Generic bitfield packing and unpacking functions". The Linux Kernel documentation. Retrieved 2021-04-10.
  2. ^ "std::vector". cppreference.com. 2021-03-09. Retrieved 2021-04-10.
  3. ^ "Intel Intrinsics Guide". Intel Developer Zone. Retrieved 2021-04-10.