!--a11y-->

m vfĖWĒ éęAĮņČĒWÅārbgņÆĩÄ\ģˇéąÆĒÅĢܡBWĖ n ÔÚĖvfĒĒWÉ éęAn ÔÚĖrbgÍ 1 ÉŨčŗęܡBĒWÉČĸęAąĖrbgÍ 0 ÉŨčŗęܡBĩŊĒÁÄASĖWÉ[ÍÜÜęÜšņB
ABAP ÅÍA^Ē X ŎŗĒÅá m/8 ĖÚđgpĩÄAm vfĖWđ\ģˇéąÆĒÅĢܡBSĖWĖ 1 ođWÉÜßéÉÍASET BIT ŊßđgpĩܡBSĖWĖĮĖoĒÁčWÉÜÜęÄĸéŠđ`FbNˇéÉÍAGET BIT ŊßđgpĩܡBČēĖWZÉÎĩÄrbgZđgpˇéąÆĒÅĢܡB
|
WZ |
rbgZ |
|
¤ĘĒ |
BIT-AND |
|
|
BIT-OR |
|
Îˎ |
BIT-XOR |
ÁčWĒĘWĖĒWŠĮ¤ŠđģfˇéŊßÉrbgņĖärđs¤ÆĢAO ZqđgpˇéąÆāÅĢܡB

DATA: FRANKFURT(4) TYPE
X,
FRISCO(4) TYPE
X,
INTERSECT(4) TYPE X,
UNION(4) TYPE
X,
BIT TYPE
I.
DATA: CARRID TYPE
SPFLI-CARRID,
CARRIER LIKE SORTED TABLE OF CARRID
WITH
UNIQUE KEY TABLE LINE.
DATA WA TYPE SPFLI.
SELECT CARRID FROM SCARR INTO TABLE CARRIER.
SELECT CARRID CITYFROM
FROM SPFLI
INTO CORRESPONDING FIELDS OF WA.
WRITE: / WA-CARRID, WA-CITYFROM.
READ TABLE CARRIER FROM WA-CARRID TRANSPORTING NO FIELDS.
CASE WA-CITYFROM.
WHEN 'FRANKFURT'.
SET BIT SY-TABIX OF FRANKFURT.
WHEN 'SAN FRANCISCO'.
SET BIT SY-TABIX OF FRISCO.
ENDCASE.
ENDSELECT.
INTERSECT = FRANKFURT
BIT-AND FRISCO.
UNION
= FRANKFURT BIT-OR FRISCO.
SKIP.
WRITE 'Airlines flying
from Frankfurt and San Francisco:'.
DO 32
TIMES.
GET BIT SY-INDEX OF INTERSECT INTO BIT.
IF BIT = 1.
READ TABLE CARRIER INDEX SY-INDEX INTO
CARRID.
WRITE CARRID.
ENDIF.
ENDDO.
SKIP.
WRITE 'Airlines flying
from Frankfurt or San Francisco:'.
DO 32
TIMES.
GET BIT SY-INDEX OF UNION INTO BIT.
IF BIT = 1.
READ TABLE CARRIER INDEX SY-INDEX INTO
CARRID.
WRITE CARRID.
ENDIF.
ENDDO.
ąęÉæčAoÍęĒČēĖæ¤ÉļŦŗęܡB

ąĖvOÅÍAFRANKFURT AFRISCO AINTERSECT A¨æŅ UNION Æĸ¤AˇŗĒ 4 Ė 4 ÂĖ 16 iÚđgpĩܡBąęįĖeÚÅAÅå 32 vfĖWđ\ģˇéąÆĒÅĢܡBî{WÍAf[^x[Xe[uSCARR ŠįĖSqķīĐĖWŎBΡérbgņĖerbgĒA1 ÂĖqķīĐđ\ĩܡBõøđõˇéŊßÉAOõøe[uCARRIER đėŦĩAģąÉe[uSCARR ĖqķīĐR[hđüÍĩܡBąęÉæčAe[uCARRIER ĖāõøđgpĩÄAqķīĐĖÁčĒÂ\ÉČčܡB
f[^x[Xe[u SPFLI Ė SELECT [vÅÍAonĖssÉĩŊĒĸAÚFRANKFURT ÜŊÍFRISCO ÅAqķīĐÉΡérbgĒŨčŗęܡBsÔSY-TABIX ĒREAD ŊßÉæÁÄŨčŗęܡBąĖŊßÅÚÍ]ŗęÜšņB
FRANKFURT Æ FRISCO ˤĘĒÜŊÍĒArbgZ BIT-AND ¨æŅ BIT-OR ÉæÁÄėŦŗęܡB
INTERSECT ¨æŅ UNION ĖerbgÍA 2 ÂĖ DO [vāÅ 1 rbg¸ÂĮŨÜęÄ]ŋŗęܡBÚāÅlĒ 1 Å é ˛ÆÉAREAD ŊßÉæÁÄe[u CARRIER ŠįqķīĐR[hĒĮŨoŗęܡB