`IAND` — 비트 논리곱(AND)

IAND — 비트 논리곱(AND)

두 정수의 비트를 하나하나 비교해서 둘 다 1인 자리만 1로 남기고 싶을 때가 있어요. IAND는 그런 비트 논리곱(bitwise AND)을 계산하는 내장 함수예요.

출처: IAND (The GNU Fortran Compiler)

본문

시놉시스(Synopsis):

RESULT = IAND(I, J)

설명(Description): 비트 논리곱(bitwise logical AND)을 계산해요.

종류(Class): 원소별(elemental) 함수

인자(Arguments):

인자 설명
I INTEGER, UNSIGNED 또는 boz 리터럴 상수여야 해요.
J I와 같은 타입·같은 종류(kind)이거나 boz 리터럴 상수여야 해요. IJ 둘 다 boz 리터럴 상수일 수는 없어요.

반환값(Return value): 반환 타입은 인자와 같은 종류(kind)예요. boz 리터럴 상수는 다른 인자의 종류에 맞춰, INT 또는 UINT 호출이 일어난 것처럼 INTEGER 또는 UNSIGNED로 변환돼요.

예제(Example):

PROGRAM test_iand
  INTEGER :: a, b
  DATA a / Z'F' /, b / Z'3' /
  WRITE (*,*) IAND(a, b)
END PROGRAM

Z'F'(1111)와 Z'3'(0011)을 AND하면 0011, 즉 3이 나와요.

특정 이름(Specific names):

이름 인자 반환 타입 표준
IAND(A) INTEGER A INTEGER Fortran 90 이후
BIAND(A) INTEGER(1) A INTEGER(1) GNU 확장
IIAND(A) INTEGER(2) A INTEGER(2) GNU 확장
JIAND(A) INTEGER(4) A INTEGER(4) GNU 확장
KIAND(A) INTEGER(8) A INTEGER(8) GNU 확장

표준(Standard): Fortran 90 이후, boz 리터럴 상수는 Fortran 2008 이후. 일부 오버로드는 GNU 확장이고, UNSIGNED에 대한 확장도 있어요.

더 알아보기

  • 비트 논리합은 IOR, 배타적 논리합은 IEOR이에요.
  • 비트를 다루는 다른 함수로 IBITS, IBSET, IBCLR, NOT을 참고하세요.