Hallo,
das type casting im unten stehenden code liefert im Simulator ein falsches Ergebnis (siehe Bild).
Dies ist meiner Ansicht nach ein Bug. Bitte um Prüfung.
Gruß
Thomas.AC
program main;
{$WG} // global Warnings
Device = xmega32A4, VCC=3.3;
Define_Fuses
Override_Fuses;
NoteBook = A;
COMport = USB;
LockBits0 = [];
FuseBits0 = [];
FuseBits1 = [];
FuseBits2 = [];
FuseBits5 = [BODLEVEL0, BODLEVEL2, BODACT0]; //BOD = 2.96V
Import
SysTick,
SerPortC1;
From System Import
LongWord, LongInt, Float;
Define
//OSCtype = int32MHz, PLLmul=4, prescA=1, prescB=1, prescC=1;
OSCtype = extXTAL=8000000, PLLmul=4, prescA=1, prescB=1, prescC=1;
SysTick = 10; {msec}
StackSize = 512, iData;
FrameSize = 512, iData;
SerportC1 = 19200;
Implementation
{$IDATA}
var
zahl : float;
intzahl : longint;
begin
zahl := 10;
intzahl := Longint(-zahl); // simulator diplays $00000000
end main.
das type casting im unten stehenden code liefert im Simulator ein falsches Ergebnis (siehe Bild).
Dies ist meiner Ansicht nach ein Bug. Bitte um Prüfung.
Gruß
Thomas.AC
Code
program main;
{$WG} // global Warnings
Device = xmega32A4, VCC=3.3;
Define_Fuses
Override_Fuses;
NoteBook = A;
COMport = USB;
LockBits0 = [];
FuseBits0 = [];
FuseBits1 = [];
FuseBits2 = [];
FuseBits5 = [BODLEVEL0, BODLEVEL2, BODACT0]; //BOD = 2.96V
Import
SysTick,
SerPortC1;
From System Import
LongWord, LongInt, Float;
Define
//OSCtype = int32MHz, PLLmul=4, prescA=1, prescB=1, prescC=1;
OSCtype = extXTAL=8000000, PLLmul=4, prescA=1, prescB=1, prescC=1;
SysTick = 10; {msec}
StackSize = 512, iData;
FrameSize = 512, iData;
SerportC1 = 19200;
Implementation
{$IDATA}
var
zahl : float;
intzahl : longint;
begin
zahl := 10;
intzahl := Longint(-zahl); // simulator diplays $00000000
end main.
Attachments
Filename: | longint typecast.png |
Filesize: | 26.06 KB |
Title: | |
Download counter: | 97 |