Perché gli autori dei linguaggi di programmazione scelgono di non implementare UFloat?

2

Mi sono reso conto che non ho visto questo tipo in Objective C o Swift. Ma abbiamo UInt.

C'è qualche motivo specifico di Computer Science per cui non abbiamo un Float non firmato? Afaik non è anche in c #.

    
posta Earl Grey 24.07.2016 - 16:51
fonte

3 risposte

7

In definitiva, la risposta è che il concetto di numeri in virgola mobile senza segno non è particolarmente utile. Concetti che sono estremamente utili si fanno strada negli standard. Concetti che sono marginalmente utili potrebbero farsi strada in pacchetti aggiuntivi. Il concetto di un galleggiante non firmato non si adatta nemmeno al concetto marginalmente utile. Elimina troppo il concetto matematico di un campo.

    
risposta data 24.07.2016 - 21:59
fonte
1

Gli input non firmati sono principalmente un'ottimizzazione delle prestazioni che tenta disperatamente di salvare anche solo un bit di memoria.

I float, d'altra parte, non erano comunque validi per tali sistemi, quindi c'è meno pressione su di loro per ottenere risparmi così contenuti. La loro gamma è già enorme comunque. L'implementazione di numeri interi senza segno nelle lingue moderne riguarda più la compatibilità che l'utilità.

    
risposta data 24.07.2016 - 23:02
fonte
0

Gli integer servono a più scopi. Puoi usarli per calcolare (aggiungere, sottrarre, moltiplicare) ma puoi anche usarli per contare o come identificatori (valori chiave) o come posizioni di memoria (puntatori). Per gli ultimi due, i valori positivi andranno bene e una versione senza segno raddoppierà convenientemente il tuo raggio d'azione.

Per i numeri in virgola mobile esiste una sola applicazione: i calcoli. E i calcoli senza meno sono privi di significato. Plus (haha), la gamma non è un problema.

    
risposta data 25.07.2016 - 16:56
fonte

Leggi altre domande sui tag