Computerhilfen.de Logo
Forum
Tipps
News

C: Bits verschieben...kann mir dass einer erklären?

 

Zitat
#include <stdio.h>

main()
{
   int a = 1024,i,b;
   printf("Speicherbedarf von a: %d Byte.\n",sizeof(a));
   for (i=0;i<12;i++)
      {b=a>>i;
   printf("%d ",b);
      }
   printf("\n");a=10;
   for(i=0;i<10;i++){
      b=a<<i;
      printf("%d ",b);
      }
   return 0;
}

Also das ist der Quellcode...
kann mir einer erklären was der macht bzw wofür das gut sen soll.
Und was soll mir die Ausgabe des Programms zeigen?

 
Zitat
Speicherbedarf a: 4 Byte.
1024 512 256 128 64 32 16 8 4 2 1 0
10 20 40 80 160 320 640 1280 2560 5120

Hoffe ihr könnt mir da helfen ???
Viele dank

Antworten zu C: Bits verschieben...kann mir dass einer erklären?:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Keine Ahnung. Soll wahrscheinlich demonstrieren, dass man mit Schiebeoperationen auch multiplizieren/dividieren kann, d.h. a>>1 ist effektiv a/2 und a<<1 ist a*2.
Das ist son alter Bauerntrick, hat man früher gerne gemacht, weil Schiebeoperationen deutlich billiger (von der Laufzeit/Rechenbedarf) sind als Multiplikation/Division. Heute darf man davon ausgehen, dass alle halbwegs vernünftigen Compiler das eh so optimieren.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ahh...ok...Danke. jetzt hab ichs auch verstanden :D


« Java: wie kann ich ein UML Diagramm mit eclipse erstelln?Zeitfunktion_00019 »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!