Rispondi alla tua domanda:
Se c'è un qualsiasi motivo per cui è stato conteggiato in modo errato, sarebbe nella notazione che hai usato. Non so quale sia la notazione attesa, ma i numeri binari in genere non hanno punti decimali, quindi per me la risposta corretta sarebbe semplicemente 0010 1101 1010
o 001011011010
o anche 0b001011011010
. Spero che il tuo professore / insegnante possa chiarire i requisiti di formato.
Verifica della risposta ricevuta:
La risposta che hai trovato è sicuramente corretta, ma voglio dare un approccio diverso per ottenere lo stesso risultato. Normalmente quando convertiamo da binario a decimale pensiamo a due potenze. ad esempio:
(Bit #) (Decimal value)
... ...
4 16
3 8
2 4
1 2
0 1
Ma considera la seguente "mappatura" tra i bit e i numeri decimali:
11 128 (Actually becomes the sign bit in 2s complement)
10 64
9 32
8 16
7 8
6 4
5 2
4 1
. (just for reference where you're putting the decimal point)
3 0.5
2 0.25
1 0.125 (provided in the example given)
0 0.0625
Nella tua affermazione sul problema dici <0,001 2 == .125 10 . Da quello, possiamo effettivamente costruire la tabella sopra. Quello che stiamo cercando di fare è trovare un fattore di scala tra le due tabelle sopra. Come lo facciamo? Guarda i bit nella stessa posizione e crea un rapporto tra i due. Nella tabella in alto, il bit 0 è uguale a 1
. Nella tabella in basso, il bit 0 è uguale a 0.0625
. Scegliamo il bit 0 perché su un lato è uguale a 1, il che semplifica i calcoli. Questi non hanno realmente unità, ma se lo facessero potrebbe essere qualcosa del tipo:
1 standard binary encoding (sbe) = 0.0625 our encoding (oe)
Usando la nostra risoluzione, possiamo essenzialmente fare analisi dimensionali sulle 'unità'. Quindi possiamo eseguire il crunch del calcolo (le unità si cancellano e ci rimane "sbe"):
45.625 oe * (1 sbe / 0.0625 oe) = 730 sbe
E se guardi il valore binario "standard" di 730, vedrai: 0010 1101 1010
o come lo hai inserito nella tua domanda: 00101101.1010
.