2016-04-06 70 views
5

Citato da N1570:Che cosa significa "tipo dominio" e "tipo reale"?

6.3.1.8 conversioni aritmetiche usuali

1 molti operatori che prevedono operandi di tipo aritmetico causa conversioni e tipi di risultato resa in un modo simile. Lo scopo è di determinare un tipo reale per gli operandi e il risultato. Per gli operandi specificati , ciascun operando viene convertito, senza modificare dominio di tipo, in un tipo il cui tipo reale è il tipo reale comune. Se non diversamente specificato, i comuni tipo reale è anche il corrispondente vero tipo del risultato, il cui tipo di dominio è il dominio tipo degli operandi se sono uguali, e complesso altrimenti. Questo modello è chiamato usuali conversioni aritmetiche:

  • primo luogo, se il corrispondente tipo reale di uno degli operandi è long double, l'altro operando viene convertito, senza cambio di tipo dominio, a un tipo il cui corrispondente tipo reale è lungo doppio.
  • In caso contrario, ......

ciò che è "tipo di dominio" e "tipo reale"? Ho cercato il documento, ma non è stata trovata alcuna definizione.

+0

tipo di dominio è integer, float, la struttura, o unione? –

+0

RTFineM: 6.2.5p18. Una semplice ricerca di testo ... – Olaf

+0

@Olaf '18 I tipi interi e floating sono chiamati collettivamente aritmetici. Ogni tipo aritmetico appartiene a un dominio di tipo: il dominio di tipo reale comprende i tipi reali, il dominio di tipo complesso comprende i tipi complessi., Ma questo non definisce "dominio di tipo" esplicitamente. –

risposta

2

6.2.5 Tipi di N1570 dice il seguente:

Integer e tipi galleggianti sono chiamati collettivamente tipi aritmetici. Ogni tipo aritmetica appartiene ad un dominio tipo: il dominio tipo reale comprende i tipi reali, il dominio tipo complesso comprendere le complesse tipi.

Poi ulteriormente:

Ci sono tre reale galleggianti tipi , designato come float , double e long double. 42) L'insieme di valori del tipo float è un sottoinsieme dell'insieme di valori del tipo doppia ; l'insieme di valori del tipo doppia è un sottoinsieme dell'insieme di valori del tipo long double

e

Esistono tre tipi complessi, indicati come float _Complex , double _Complex e long double _Complex.

(fare attenzione che lo standard non dice nulla sui tipi di interi complessi, quindi tutti i tipi di interi definiti nello standard appartengono al dominio di tipo reale).

Quindi è chiaro che il dominio si riferisce ai concetti matematici di real numbers ℝ e complex numbers ℂ.


In sostanza ciò che il brano nella sua domanda dice è che se, ad esempio aggiungere un numero reale con un numero immaginario o un numero complesso, il risultato è anche un numero complesso; e anche che gli operandi vengono promossi alla larghezza dell'operando più grande prima dell'operazione.