Newsgroup: it.comp.lang.pascal
Titolo: Come si dichiara LongInt senza segno?

Come si dichiara LongInt senza segno in Turbo Pascal 6.0 ?
Grazie.
    Lucio

 Come si dichiara LongInt senza segno in Turbo Pascal 6.0 ?
Credo che gli interi lunghi senza segno non siano definiti in tp. Se
pero` li devi usare in asm dichiarali pure come longint.
Ciao
  Roberto.
-- 
-------------------------------------------------------------------
 Vabbe`  ma  mica posso fare tutto io! Te lo sai a che ora mi sono
 alzato  questa  mattina? Alle sette meno un quarto! La bambina mi
 ha vomitato tutta  l'anguria  nelle scarpe!  Stamattina e` venuto
 l'idraulico e sai  quanto mi ha chiesto? Centocinquantamila lire!
 E dopo mezz'ora  il  rubinetto ha ricominciato a buttare l'acqua!
 Quela poi e` andata al corso di chitarra alle tre del pomeriggio,
 lo sai a che ora e` tornata? alle  quattro del mattino! Con tutto
 il rossetto  spostato  sulla  faccia. Ma che la chitarra la suoni
 con la bocca? Hai capito?
-------------------------------------------------------------------
 Attenzione:  i  dati  nell'header  sono modificati per difendermi
 dagli spammer. L'indirizzo  esatto  e`:  
crs...@xxxfreenet.hut.fi
                                   senza le tre x^^^

Come si dichiara LongInt senza segno in Turbo Pascal 6.0 ?
Non e' possibile dichiararlo ma e' possibile sfruttare un tipo del genere
interfacciando al codice TP del puro codice assembler con il costrutto 
asm begin... end;
--
Posted from 
itaca.ulysse.it
 [195.223.254.1]
via Mailgate.ORG Server - 
http://www.mailgate.org

Come si dichiara LongInt senza segno in Turbo Pascal 6.0 ?
Qui ho scritto un programma (pero' non l'ho provato) che definisce una
QuadWord (64 bit senza segno). Penso che la stessa cosa si possa fare
definendo un DoubleWord (32 bit segna segno) da te richiesta. Il
programma e' chiaramente migliorabile da chi ha la possibilita' di
farlo.
program prova_quadword;
uses  crt;
type   quadword = array [0..7] of byte;
var     qdword : quadword;
          i : byte;
procedure Operate(var q : quadword; wr1, wr2, wr3, wr4 : word);
          begin
          asm
             les      di, q
             mov    ax, wr1
             mov    word ptr es:[DI].quadword.Word[0], ax
             mov    ax, wr2
             mov    word ptr es:[DI].quadword.Word[2], ax
             mov    ax, wr3
             mov    word ptr es:[DI].quadword.Word[4], ax
             mov    ax, wr4
             mov    word ptr es:[DI].quadword.Word[6], ax
             end;
          end;
begin
     clrscr;
     Operate(qdword, 22,33,44,55);
     for i:=0 to 7 do
         writeln(i, qdword[i]:5);
end.
Bye.
Jo Parrello - OWL/C++ Programmer
http://www.geocities.com/SiliconValley/Hills/8145
(
jopar...@geocities.com
)



definendo un DoubleWord (32 bit segna segno) da te richiesta. 
Il TP prevede il tipo "comp" che e' un intero a 64 bit con segno.
Puo' essere sfruttato per accedere ai valori oltre il limite dei LongInt.
Andrea Laforgia
---------------
(grattatio pallarum omnia mala fugit)


Puo' essere sfruttato per accedere ai valori oltre il limite dei LongInt.
Ma sei sicuro che esiste? A me giunge nuova questa cosa.
Bye.
Jo.

Ma sei sicuro che esiste? A me giunge nuova questa cosa.
Si, esiste.
In realta' e' menzionato tra i tipi a virgola mobile, ma e' un intero di 64 bit.
Ovviamente e' uno di quei tipi che e' possibile usare, solo attivando la
direttiva $N 


 direttiva $N 
 Se non dovete generare codice x88 o x286 potete passare al 
compilatore virtual pascal, genera codice a 32 bit. CI sono le due 
versioni os\2 e win32. Accettano codice tp e delphy 3. Attualmente in 
beta test generano codice molto piu' piccolo ed efficiente del 
borland. 
 Inoltre ha il supporto per gli ULong cioe' i UnsignedLONGint cercati.
 Per la version delphy esiste Sybil, genera codice w32 ma non sono 
sicuro funzioni sotto wxx.
 Non usate programmi copiati...
 Windows? No Thanks :)
Sent With pronews 1.0 Reg.
 TOgliere Nononospam dall'indirizzo.

 Windows? No Thanks :)
Beati i tempi del Commodore 64....
Bye.
Jo.


 Beati i tempi del Commodore 64....
 non era quello il significato, era una campagna antipirateria... 
riprova...


riprova...
Avevo capito il significato :-))).
Bye.
Jo.

data-orario).
Ti ripeto che il TP prevede gli interi a 64 bit.
E comunque, quando serve un tipo nuovo di dato, lo si costruisce a partire da
quelli base.
Lo stesso si puo' fare in TP, sfruttando un po' di OOP magari (in C++ si sarebbe
piu' avvantaggiati per l'operator overloading).
Andrea Laforgia
-------------------------------------


piu' avvantaggiati per l'operator overloading).
Magari ci fosse l'operator overloading anche in TP. Si potrebbero
creare strutture di tipo record e fare in modo che si riassegnino gli
operatori ":=", ">", "<", "=". Ho dato un'occhiata all'oggetto TRect
della unit Objects, e onestamente parlando preferisco la controparte
dell'OWL della Borland, molto piu' pratica da usare (un po' di pulizia
del codice non guasta!!). Una cosa e' il seguente codice in Pascal:
procedure Esempio(x,y: integer);
begin
var R: TRect;
  R.Assign(x, y, x + 12, y + 12);
  inherited Init(R);
..........
end;
ed una cosa in OWL/C++:
void Esempio(int x, int y)
{
TRect rect = TRect(x, y, x + 12, y + 12);
}
Senza aver bisogno di un costruttore, di una funzione di assegnazione
e di un distruttore (rect, in questo caso, e' statico). Qui basta solo
un operatore (soggetto pero' ad overloading).
Onestamente spero che Delphi abbia una gestione simile a quella di
OWL, parecchio piu' semplice e "pulita".
Bye.
Jo.

dell'OWL della Borland, molto piu' pratica da usare (un po' di pulizia
Infatti, sono d'accordo.
La gestione degli oggetti del TP non mi piace proprio, preferisco di gran lunga
il C++, se non addirittura Java, che dal questo punto di vista e' ancora
migliore.
Sacrificando, magari, la velocita'.
