if-Anweisung

Gast #2462511
Lesenswert?

Guten Tag,

wie darf ich folgende if-Anweisung verstehen (siehe Fragezeichen)?

1
// Aufgabenstellung 4
2
// pos.c
3

4
#include<stdio.h>
5

6
unsigned char pos(unsigned char);
7

8
int main(void)
9
{
10
 int position;
11
    
12
 position = pos(0x64);
13
 
14
 printf("position: %d\n\n", position);
15
   
16
 system("pause");
17
 return 0;
18
}
19

20

21
unsigned char pos(unsigned char data)
22
{
23
 int i;
24
 int flag = 0;
25

26
 for(i= 0; i< 8; i++)
27
 {
28
  if(data & (1 << i))
29
  {
30
   if(flag) //??????????????????????????????????????
31
   {
32
    return i - 1;
33
   }
34
   flag = 1;
35
  }
36
  else 
37
  {
38
   flag = 0;
39
  }  
40
 }
41

42
 return 0;
43
}


Vielen DANK!!!
Gast #2462548
Lesenswert?

Die Aufgabenstellung lautet:

Gesucht ist eine Funktion, welche die Position der ersten zwei Einsen 
eines 8-Bit-Wertes zurückliefert.

Du hast Recht, die HEX-Zahl 0x00 wird mit diesem Programm nicht richtig 
interpretiert. Man könnte zum Beispiel einen Fehler-Code als return-Wert 
zurück senden, wenn keine Einsen gesetzt sind (z.B.: 0x00).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren