View Full Version : [C++] Vecchi compilatori
Ciao a tutti passo subito alla domanda:
Perche' in un sistema MS-DOS a 16 bit se dichiaro una variabile int a = 92126 il valore sara' troncato a 26590?
tomminno
03-04-2009, 22:36
Ciao a tutti passo subito alla domanda:
Perche' in un sistema MS-DOS a 16 bit se dichiaro una variabile int a = 92126 il valore sara' troncato a 26590?
Su un sistema a 16 bit int è a 16 bit.
92126 = 10110011111011110 (17 bit) => (16 bit) 0110011111011110 = 26590
perché tipicamente i compilatori a 16 bit stabiliscono che la dimensione di un int sia appunto di 16 bit; contando che gli int di default sono signed il range di valori é da -32768 a +32767, quindi i valori positivi sono in tutto 32768, infatti 92126 % 32768 = 26590.
edit - battuto sul tempo :p
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.