PDA

Visualizza la versione completa : [C/C++]: Conversione da decimale a binario


teddy_boss
14-09-2006, 18:24
ciao,
cm state?
ascoltate ho un problema devo fare un semplice programma che converta un numero decimale inserito dall'utente nel suo corrispondente binario...ma non so come fare fare al prog la conversione...come posso fare??aiutaemi per favore ciao grazie a tutti.

alka
14-09-2006, 18:40
E il linguaggio?

teddy_boss
14-09-2006, 19:06
c ++ scusa la dimenticanza :)

LeleFT
14-09-2006, 21:41
Puoi usare tranquillamente gli operatori bit a bit e quelli di shift dei bit.
Oppure giochi con le divisioni per due e i resti... :)

Esiste anche una terza soluzione: i campi di bit... ma ti togli tutto il gusto! :)

Ciao. :ciauz:

teddy_boss
15-09-2006, 12:44
grazie solo un informazione come posso fare a dire che se il numero ha la virgola?

LeleFT
15-09-2006, 13:45
Se il numero non č un intero, allora le cose si complicano.
I numeri con la virgola vengono rappresentati in binario attriaverso la codifica IEEE 754 chiamato Floating Point (virgola mobile).
In questa rappresentazione, in pratica, il primo bit viene utilizzato per il segno del numero (0 = positivo, 1 = negativo), poi ci sono 8 bit (11 per i double) che rappresentano la "mantissa" del numero (una normalizzazione del numero come 1.<mantissa>), quindi vi sono i rimanenti 23 bit (52 per i double) che rappresentano l'esponente a cui deve essere elevata la base (2) per ottenere il numero di partenza.


Ciao. :ciauz:

mica81
15-09-2006, 23:27
avevo compilato tempo fa un programma che faceva la cosa che richiedi. Ci misi un menu che permetteva all'utente di convertire da binario e decimale come prima opzione e viceversa come seconda. Guardo se riesco a ritrovarlo. Se lo trovo lo posto qua!

Xaratroom
21-09-2006, 20:08
Esistono pių modi ma ti illustro il pių semplice: dividere per due il numero (divisione intera) finchč il quoziente non diventa zero, di volta in volta memorizzare il resto in un vettore e infine stampare al contrario il vettore nel quale sono presenti i resti

Es 10d = 1010b
10/2 = 5 resto 0
5/2 = 2 resto 1
2/2 = 1 resto = 0
1/2 = 0 resto = 1

Loading