`IAND` — 비트 논리곱(AND)
IAND — 비트 논리곱(AND)
두 정수의 비트를 하나하나 비교해서 둘 다 1인 자리만 1로 남기고 싶을 때가 있어요. IAND는 그런 비트 논리곱(bitwise AND)을 계산하는 내장 함수예요.
본문
시놉시스(Synopsis):
RESULT = IAND(I, J)
설명(Description): 비트 논리곱(bitwise logical AND)을 계산해요.
종류(Class): 원소별(elemental) 함수
인자(Arguments):
| 인자 | 설명 |
|---|---|
I |
INTEGER, UNSIGNED 또는 boz 리터럴 상수여야 해요. |
J |
I와 같은 타입·같은 종류(kind)이거나 boz 리터럴 상수여야 해요. I와 J 둘 다 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을 참고하세요.