BTEST — 비트 검사 함수

BTEST — 비트 검사 함수

특정 위치의 비트가 켜져 있는지(1인지) 여부를 알고 싶을 때가 있어요. 예를 들어 플래그 비트를 하나씩 검사한다거나요. 정수의 POS 번째 비트를 검사해 주는 함수가 BTEST예요.

출처: 공식문서

본문

문법

RESULT = BTEST(I, POS)

설명

BTEST(I, POS)는 I의 POS 위치 비트가 켜져 있으면 논리값 .TRUE.를 반환해요. 비트의 번호는 0부터 시작해요.

분류

엘리멘탈 함수(elemental function)예요.

인자

인자 설명
I 타입이 INTEGER 또는 UNSIGNED여야 해요.
POS 타입이 INTEGER여야 해요.

반환값

반환값은 LOGICAL 타입이에요.

예시

i = 32768 + 1024 + 64의 비트를 0부터 16까지 검사해 보는 예시예요.

program test_btest
  integer :: i = 32768 + 1024 + 64
  integer :: pos
  logical :: bool
  do pos=0,16
    bool = btest(i, pos)
    print *, pos, bool
  end do
end program test_btest

특정 이름 (Specific names)

이름 인자 반환 타입 표준
BTEST(I,POS) INTEGER I,POS LOGICAL Fortran 95 이상
BBTEST(I,POS) INTEGER(1) I,POS LOGICAL(1) GNU 확장
BITEST(I,POS) INTEGER(2) I,POS LOGICAL(2) GNU 확장
BJTEST(I,POS) INTEGER(4) I,POS LOGICAL(4) GNU 확장
BKTEST(I,POS) INTEGER(8) I,POS LOGICAL(8) GNU 확장

표준

Fortran 90 이상. 일부 오버로드는 GNU 확장이고, UNSIGNED에 대한 확장은 Unsigned integers 문서를 참고하세요.

더 알아보기

  • 다른 비트 연산 함수들(BGE, BGT, BLE, BLT)과 함께 쓰면 비트 단위 로직을 다양하게 구성할 수 있어요.