!&
nand
en met aansluitende bit -
invertering
|
or
Of
! |
nor
of met aansluitende bit -
invertering
^
xor
exclusief - of
Logische operaties met float – operandi vormen een bijzonderheid. Hier vindt voor de logische koppeling
een automatische convertering in een integere waarde 0 of –1 plaats: de float – waarde 0.0 wordt integer
0, alle waarden niet gelijk aan 0.0 worden –1.
Dit geldt echter niet voor constante float – termen, die geen echte "zwevende" kommawaarde hebben,
b.v. 2.0, omdat die door de compiler als int – of long – constanten beschouwd worden.
Voorbeeld:
float x;
int result;
x = 2;
result = not x;
result = not 2.0;
5.7.6
Stringkoppeling met de operator
Bij toewijzingen aan stringvariabelen kan aan de rechterkant van de toewijzingsoperator een gekoppelde
stringterm staan. In de koppeling worden deelstrings tot
steeds door een + - operator van elkaar gescheiden. Als een aparte deelstring kan staan:
•
een kenmerk van een string -variabele
•
een geïndiceerd kenmerk van een variabele string -array
•
een kenmerk van een string –constante
•
een geïndiceerd kenmerk van een constante string – array
•
een onbenoemde string – constante
•
een numerieke term
Numerieke termen in de string – koppeling moeten tussen haakjes staan, als ze zelf operators bevatten.
Een numerieke term wordt geïnterpreteerd als ASCII – code van een teken en als zodanig in de resultaat
– string ingepakt. Eventueel vindt er een reducering van de waarde plaats tot het bereik van 0 ... 255.
Koppelingen worden automatisch gelimiteerd tot 30 tekens.
Voorbeeld voor een string – koppeling met +:
14 & 3
(1<2) & (2<3)
(1<2) & (3<2)
1 !& 1
1 nand 0
14 !& 3
(1<2) !& (2<3)
(1<2) !& (3<2)
1 | 1
1 or 0
0 or 0
14 or 1
(1<2) | (2<3)
(1<2) | (3<2)
(2<1) | (3<2)
1 !| 1
1 nor 0
0 nor 0
14 nor 1
(1<2) !| (2<3)
(1<2) !| (3<2)
(2<1) !| (3<2)
1 ^ 1
1 xor 0
0 xor 0
14 ^ 3
(1<2) ^ (2<3)
(1<2) | (3<2)
(2<1) | (3<2)
/ / result wordt 0
/ / result wordt –3
2
-1
0
-2
-1
-3
0
-1
1
1
0
15
-1
-1
0
-2
-2
-1
-16
0
0
-1
0
1
0
3
0
-1
-1
n resultaat samengevoegd. De deelstrings zijn
35