AND — 비트 논리곱
AND — 비트 논리곱
이진수로 된 값의 각 비트를 논리 AND로 묶고 싶을 때가 있어요. AND는 두 인자의 비트 논리곱(bitwise logical AND)을 계산하는 함수입니다. 다만 이 함수는 GNU Fortran 77과의 하위 호환을 위해 제공되는 예전 방식이라, 정수 인자에 대해서는 표준에 정의된 IAND를 쓰는 걸 권장해요.
본문
시그니처(Synopsis)
RESULT = AND(I, J)
설명(Description)
비트 논리곱(bitwise logical AND)이에요. 이 내장 루틴은 GNU Fortran 77과의 하위 호환을 위해 제공됩니다. 정수 인자의 경우, Fortran 표준에 정의된 IAND의 사용을 고려하는 게 좋아요.
분류(Class)
함수(Function)
인자(Arguments)
I: 스칼라INTEGER유형, 스칼라LOGICAL유형, 또는 boz 리터럴 상수 중 하나여야 해요.J:I와 같은 유형이거나 boz 리터럴 상수여야 해요.I와J가 둘 다 boz 리터럴 상수면 안 됩니다. 둘 중 하나가 boz 리터럴 상수라면 나머지 인자는 스칼라INTEGER여야 해요.
반환값
반환 유형은 스칼라 INTEGER 또는 스칼라 LOGICAL이에요. 종류 매개변수가 서로 다르면 작은 종류가 큰 종류로 암시적으로 변환되고, 반환값은 큰 종류를 가져요. boz 리터럴 상수는 INT 호출이 일어난 것처럼 다른 인자의 종류 매개변수를 갖는 INTEGER로 변환됩니다.
예제
PROGRAM test_and
LOGICAL :: T = .TRUE., F = .FALSE.
INTEGER :: a, b
DATA a / Z'F' /, b / Z'3' /
WRITE (*,*) AND(T, T), AND(T, F), AND(F, T), AND(F, F)
WRITE (*,*) AND(a, b)
END PROGRAM
논리 값 T, F의 모든 조합에 대한 AND와, 16진수 Z'F'와 Z'3'를 담은 a, b의 비트 AND를 출력하는 예시예요. a(1111)와 b(0011)의 AND는 0011이 됩니다.
표준(Standard)
GNU 확장(GNU extension)
함께 보기
- Fortran 95 요소 함수: IAND — 비트 논리곱