--- Alfonso Martone <a.martone@xxxxxxxxxxx> wrote: > > > Per quanto riguarda la conversione di un numero in virgola mobile > > > in intero bastano solo queste 2 istruzioni? > > Oops. Scusate l'ennesimo messaggio, ma qualcosa non mi quadra... > > Se io dallo Spectrum Basic faccio "LET a=60000", il numero e' intero > ma viene memorizzato in floating point con mantissa 0 ed esponente > "00/xx/xx/00", cioe' come "00 00 60 EA 00", dove $EA60 e' proprio > 60000! No, fermo, aspetta li'... Questa cosa funziona solo con gli interi. Se il numero e' intero lo spectrum lo scrive cosi', se invece e' un reale, allora lo scrive a tutta mantissa. Siccome nella scrittura floating point c'e' un bit sempre a 1 (mi pare l'ultimo del primo dei 5 byte ma non ricordo), allora quel bit funge anche da flag. Se e' 1, il numero e' in virgola mobile e occorre considerare tutti e 5 i byte. Se e' 0, il numero e' intero e allora puoi leggere solo i byte 3,4 > > A questo punto il mio programma che converte un float in un intero > diventa qualcosa tipo: > > ld bc, (23770) > ret > > La conversione e' esatta, e vale per qualsiasi numero da 0 a 65535! > :-) No, mi sa che vale per ogni numero da -32768 a 32767 ===== // // In a world without walls and fences // you would not need windows and gates. // (Confucio) == P'n'P: http://cnn.com/TECH/computing/9804/20/gates.comdex/index.html __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com