x ist dann ungleich null, wenn y grösser als 0 ist.
Wenn y = 0 ist, dann ist x = 0.
Negative Zahlen (kleiner 0) gibt es nicht, wir sind hier unsigned.
1 | uint8_t x;
|
2 | uint8_t y;
|
3 | ...
|
4 | x = (y > 0);
|
könnte also auch so geschrieben werden
1 | uint8_t x;
|
2 | uint8_t y;
|
3 | ...
|
4 | x = y;
|
In C gibt es nur die Null. Die anderen Zustände sollten davon abgeleitet
werden, dann kann der Compiler machen (und optimieren), was er will. Ein
ungleich Null ist daher nicht zwingend eine Eins. Ob eine !0 (nicht
null) eine 1 (eins) oder ein 0xFF (viele einsen) ist, hängt dann von der
Zielarchitektur ab.