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)과 함께 쓰면 비트 단위 로직을 다양하게 구성할 수 있어요.