Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » was bedeutet if(n & i)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.11.2020, 20:28 Uhr
kalem



Hallo,

kann mir bitte jemand sagen was das hier in dem Fall bedeutet?
if(7 & i)
oder
if(8 & i)

Vielen Dank vorab.

Gruß
kalem


Code:
#include<stdio.h>

void bin(unsigned n)
{
    unsigned i;
    for (i = 1 << 31; i > 0; i = i / 2)
    if(n & i)
    {
    printf("1");
    }
    else
    {
        printf("0");
    }
    
}

int main(void)
{
    bin(7);
    printf("\n");
    bin(8);
}


Dieser Post wurde am 21.11.2020 um 20:29 Uhr von kalem editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.11.2020, 20:12 Uhr
ao

(Operator)


Das ist eine bitweise VerUNDung, Erklärung hier: https://de.wikipedia.org/wiki/Bitweiser_Operator

Lies das mal als Einstieg.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.03.2021, 17:35 Uhr
Hans
Library Walker
(Operator)


Just for fun...


C++:

#include<stdio.h>
#include<time.h>

void bin(unsigned n);

int main(void)
{
  time_t t1, t2;
  unsigned i;
    
  double timediff;

  time(&t1);  /* get current time; same as: now = time(NULL)  */
  for (i=0; i<(~0) ; i++)   /* ~0 == 11111..11 also 32 oder 64 1-bits */
    { bin(i);
      printf("\r");
    }
  time(&t2);
  
  timediff = difftime(t2,t1);
  printf ("\nBenötigte Zeit: %f\n", timediff);  
    
  return 0;
}


void bin(unsigned n)
{
    unsigned i;
    for (i = 1 << 31; i > 0; i = i / 2)
    if(n & i)
    {
    printf("1");
    }
    else
    {
        printf("0");
    }
    
}



Gibt auf meinem Rechner mit i<((~0) & 0xffff) etwa 2.00000 und mit i<((~0) & 0x3ffff) 9.00000 aus.
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: