Hey,
also ich weiss eigentlich schon, was der UND Opteraor macht, er vergleicht die Bits eines Binären Wertes mit einem anderen Bit und gibt '1' aus, wenn beide Bits überein Stimmen.
Aber in dem Folgendem Zusammenhang verstehe ich das nicht:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
for(int i = 0; i < 8; i++)
{
binzahl[i] = n & 128 ? '1' : '0';
n <<= 1;
}
|
Hier wird nicht nur 1 Bit mit einem anderem Bit verglichen, sondern 1 Byte mit einem Byte und wieso brache ich dazu noch den
ternären Operator?
Dieses Codestück ist aus einem Buch.
2. Frage:
Ich möchte mittels einer Funktion einen String zurückliefern, so wie in dem gezeigten Beispiel.
Wieso muss ich den String als static deklarieren lassen?
Hier, ich zeige euch, was ich meine:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
|
char* binbin(int n)
{
//Wieso static?
static char binzahl[9];
for(int i = 0; i < 8; i++)
{
binzahl[i] = n & 128 ? '1' : '0';
n <<= 1;
}
binzahl[8] = '\0';
return binzahl;
}
|