Forum: PC-Programmierung Frage zur Free Pacal: Was bedeutet: ns:=1<<br-1;


von Cheffe (Gast)


Angehängte Dateien:

Lesenswert?

Moin, es geht um das angehängte Programm.

was bedeutet z.B.: ns:=1<<br-1;

ns ist eine vom Typ LongInt und br ein byte.

ns:=1 bedeutet ja, dass ns den Wert 1 annehmen soll. Aber wozu das 
<<br-1



?

Gruß
Cheffe

von Peter II (Gast)


Lesenswert?

Cheffe schrieb:
> ns:=1 bedeutet ja, dass ns den Wert 1 annehmen soll. Aber wozu das
> <<br-1

nein, ns:= bedeutet das ns das ergebniss der rechten seite annimmt.

also
1<<br-1;

das << ist eine shift opteration. Es wird dabei die 1 umd br-1 stellen 
nach links verschoben.

von Frank (Gast)


Lesenswert?

Hallo,
zuerst wird br-1 berechnet und die 1 soviele Stellen nach links 
geschoben. Anschließend wird diese Zahl der Variablen ns zugewiesen.
Gruß Frank.

von Pascal (Gast)


Lesenswert?

Peter II schrieb:
> das << ist eine shift opteration. Es wird dabei die 1 umd br-1 stellen
> nach links verschoben.

Shift hat eine höhere Priorität als Minus!

Cheffe schrieb:
> ns:=1<<br-1;

Das ist sch... programmiert. Besser lesbar ns := 1 shl br - 1;
Und wirklich gemeint wahrscheinlich ns := 1 shl (br - 1);

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.