"and" löscht Vorzeichenbit

robert
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Hildesheim / Deutschland
Beiträge: 249
Dabei seit: 04 / 2006
Betreff:

"and" löscht Vorzeichenbit

 · 
Gepostet: 15.07.2010 - 11:20 Uhr  ·  #1
Hallo,
ein "i and integer(%1111111111111111)" löscht das Vorzeichenbit. Bug oder Feature?

Robert

Code
program bla;

{$NOSHADOW}
{ $WG}                     {global Warnings off}

Device = mega128, VCC=5;
{ $BOOTRST $1F000}         {Reset Jump to $1F000}

Import SysTick, SerPort;

From System Import Float, Fix64;


Define
  ProcClock      = 16000000;       {Hertz}
  SysTick        = 10;             {msec}
  StackSize      = $0100, iData;
  FrameSize      = $0100, iData;
  SerPort        = 57600, Stop2;    {Baud, StopBits|Parity}
  RxBuffer       = 8, iData;
  TxBuffer       = 8, iData;

Implementation

{$IDATA}

const

type

var
  i : integer;
  
begin
  EnableInts;

  i := -123;
  i := i and integer(%11111111 11111111);  //Löscht das Vorzeichenbit. Warum?
  WriteLn(SerOut, 'i = ' + IntToStr(i:8) + '  ' + IntToBin(i));

  WriteLn(SerOut);
  
  i := -123;
  i := integer(word(i) and word(%11111111 11111111)); //So geht's
  WriteLn(SerOut, 'i = ' + IntToStr(i:8) + '  ' + IntToBin(i));
  
end bla.
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: "and" löscht Vorzeichenbit

 · 
Gepostet: 15.07.2010 - 15:01 Uhr  ·  #2
Hallo Robert,

Ihr Hobby ist offensichtlich Compiler Bugs zu finden :-)
Es ist ein Bug. Update am WE.

rolf
robert
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Hildesheim / Deutschland
Beiträge: 249
Dabei seit: 04 / 2006
Betreff:

Re: "and" löscht Vorzeichenbit

 · 
Gepostet: 15.07.2010 - 15:19 Uhr  ·  #3
Hallo Rolf,
Zitat geschrieben von rh

Ihr Hobby ist offensichtlich Compiler Bugs zu finden :-)

:lol:
Bei der hohen Trefferquote mag man das meinen. Aber nein, Bugs finden macht mir keinen Spass. Es kostet so viel Zeit. Die eigentlich ganz einfache Sache, einen LM76 auszulesen, hat mich fast zur Verzweiflung gebracht, als ich mit Kältespray anfing und keine negativen Temperaturen erhielt.

Robert
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   66   80 · Page-Gen-Time: 0.03602s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI