Domanda

C'è una differenza nel matrimoniale quando corro la mia app su 32 e 64 bit di ambiente?

Se non sbaglio il doppio in un ambiente a 32 bit assumerà le 16 cifre dopo 0, mentre il doppio in 64 bit assumerà 32 bit, ho ragione?

È stato utile?

Soluzione

n, un IEEE 754 a precisione doppia virgola mobile numero è sempre di 64 bit. Analogamente, un float singola precisione è sempre di 32 bit.

Se la domanda riguarda C # e / o .net specifico (come il tag indicherebbe), tutti delle dimensioni dei tipi di dati sono fissi, indipendentemente l'architettura del sistema. Questa è la stessa di Java, ma diversa da C e C ++ dove tipo dimensioni variano da una piattaforma all'altra.

E 'comune per i tipi integrali abbiano dimensioni diverse su diverse architetture in C e C ++. Ad esempio, int era a 16 bit a 16 bit e 32 bit DOS ampia in Win32. Tuttavia, lo standard IEEE 754 è così onnipresente per virgola mobile calcolo che le dimensioni di float e double fanno non variare su tutto il sistema si trova nel mondo reale - 20 anni fa era double 64 bit e così lo è oggi.

Altri suggerimenti

c # double è sempre 8 byte (64 bit)

Non cambia.

Un modo semplice per verificare la presenza di questo sta scrivendo una semplice applicazione console con

Console.WriteLine(Double.MaxValue);

e la compilazione sia x86 e x64.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top