Perché il C++ non supporta la doppia sintassi senza segno?Doppio senza segno in C++?
risposta
Poiché i formati di virgola mobile tipici non supportano i numeri senza segno. Si veda, ad esempio, this list of IEEE 754 formats.
L'aggiunta di un formato numerico non supportato dall'hardware comune rende la vita difficile agli autori di compilatori e probabilmente non è considerata valida.
Anche l'idea * è con virgola mobile. Quel ** Qualsiasi ** numero dovrebbe essere rappresentabile, inclusi gli interi negativi fuori all'infinito. I numeri non firmati sono controproducenti per questo obiettivo. – unixman83
Ehm, no, non è questo il punto. O se è il punto, tutti i tipi di floating point sono destinati all'insuccesso. L'insieme dei numeri che possono sempre essere rappresentato in modo significativo in un computer è numerabile ... –
Il C++ non supporta i tipi di virgola mobile senza segno perché la maggior parte dell'hardware in virgola mobile non supporta i tipi di virgola mobile senza segno. Alcune schede grafiche funzionano con virgola mobile senza segno, ma sono generalmente interne, non realmente visibili a un programma o utente.
Gli interi senza segno ottengono un po 'di precisione in più e hanno semantica bit-bit leggermente diversa dagli interi con segno. I float e i doubles si riservano sempre un po 'di segno (sulla maggior parte dell'hardware) e non hanno semantica bit-saggia, quindi non c'è alcun vantaggio reale nell'avere un tipo reale senza segno.
È teoricamente * potrebbe * utilizzare tale bit per la mantissa o esponente, però, l'aumento sia portata o la precisione. – Joey
Beh, volevo un doppio senza segno per controllare che fosse sempre un numero positivo senza continuare a controllarlo. Quindi sì, c'è beneficio. – Zammbi
@ Јοеу: (. Ci scusiamo per il ritardo, piuttosto di risposta) Sì, sarebbe d'aiuto, ma la domanda era per la mancanza di doppi firmati in C++. Non si trattava del motivo per cui l'hardware non lo supporta. L'aggiunta del concetto al C++ senza l'aggiunta di supporto per l'hardware non ti procurerebbe nulla. –
- 1. valori senza segno C
- 2. Costante esadecimale senza segno in C?
- 3. doppio segno del dollaro php
- 4. Avviso C++ C4018: '<': mancata corrispondenza con segno/senza segno
- 5. Formattare un doppio valore come moneta, ma senza il segno di valuta (C#)
- 6. Moltiplicazione con segno e senza segno
- 7. Primitive negative senza segno?
- 8. Fare parametro modello di funzione senza segno in C++ 11
- 9. Numeri interi senza segno in C++ per loop
- 10. Bit inverso C in numero intero senza segno
- 11. Come stampare un carattere senza segno in C?
- 12. Formato doppio in C#
- 13. Qual è il significato del doppio segno percentuale (%%) in R
- 14. max senza diramazione per interi senza segno
- 15. conversione sicura dal doppio al senza segno a 64 bit integer
- 16. Il modulo C senza segno causa il warning del compilatore
- 17. C: comportamento operatore unario meno con operandi senza segno
- 18. Numero intero senza segno a 1 byte C++
- 19. Ricerca senza segno diacritico Loopback
- 20. Come si può facilmente calcolare la radice quadrata di un long lungo senza segno in C?
- 21. è size_t sempre senza segno?
- 22. come stampare l'esadecimale con segno in c
- 23. Converti doppio in stringa C++?
- 24. Doppio round in Objective-C
- 25. GDI + doppio buffering in C++
- 26. Perché java richiede un doppio segno di uguale?
- 27. array sorta di doppio in C
- 28. Cosa fa il doppio? significa in C#?
- 29. doppio? = doppio? + doppio?
- 30. Visualizzazione selezione elenco senza riempimento e senza segno di spunta
quello Langs lo supportano? Pensa che in genere si presume che si stia utilizzando qualsiasi tipo di virgola mobile, quindi non è praticamente mai necessario. – SteelBytes
Ehi, ho corretto la sintassi della sintassi. –