<<, >> vs. shl, shr

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Mathias
Beiträge: 7165
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

<<, >> vs. shl, shr

Beitrag von Mathias »

Seit wann funktioniert die in Pascal, habe es gerade zufällig entdeckt ?

Code: Alles auswählen

  WriteLn(1 << 7);
  WriteLn(255 >> 7);
Ich dacht immer man müsste zwingen shl und shr nehmen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1731
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: <<, >> vs. shl, shr

Beitrag von fliegermichl »

Also das steht hier auch in der Dokumentation.
Seit wann, kann ich aber auch nicht sagen.

PascalDragon
Beiträge: 1022
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: <<, >> vs. shl, shr

Beitrag von PascalDragon »

Das ist schon sehr, sehr alt (20 Jahre oder so) und ist eine FPC-Spezialität. Und nicht mal an die $COperators-Option gebunden... :roll: Zu meinem Leidwesen sorgt das auch für Problemen bei verschachtelten Generic Spezialisierungen im Delphi Modus:

Code: Alles auswählen

program tgenshift;

{$mode delphi}

function Test<T>(const aArg: T): T;
begin
  Result := aArg;
end;

begin
  Test<TArray<LongInt>>([42]);
end.
Mit > > statt >> gibt es dann andere Fehler, das liegt aber daran, dass verschachtelte Spezialisierungen im Delphi Modus so oder so noch problematisch sind.
FPC Compiler Entwickler

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7062
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: <<, >> vs. shl, shr

Beitrag von af0815 »

PascalDragon hat geschrieben: Sa 10. Jan 2026, 19:08 Das ist schon sehr, sehr alt (20 Jahre oder so) und ist eine FPC-Spezialität. Und nicht mal an die $COperators-Option gebunden... :roll: Zu meinem Leidwesen sorgt das
Jugendsünden :-)

Ich hätte die Operatoren auch nicht so bei Pascal erwartet, danke, wieder was gelernt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten