Conversione numeri in base 2

leonarth
ragazzi, in vista dell'esonero che avrò a febbraio stavo facendo alcuni esercizi sulla conversione da numeri in base 2 a numeri in base 10 e viceversa.. ma ho dei dubbi :
per esempio

1) il numero +13 in modulo e segno con 5 bit:
13:2=6 resto 1
6:2=3 resto 0
3:2=1 resto 1
1:2=0 resto 1
quindi +13 in base 2 è 1101, ma visto che dobbiamo usare 5 bit diventa 01101 ??


2)qual è il numero minimo di bit per rappresentare -17 in complemento a 2?
il procedimento è : 17:2 resto 1 ecc ecc e viene 10001 ma visto che è complemento a 2 diventa 01110+1?? --> 01111 ---> 5 bit necessari?? ma se è un numero negativo non dovrebbe iniziare con un 1 ?!

3) a che numero in base 10 corrisponde 001010 in complemento a 2 con 6 bit ?
io faccio 001010-1 (perchè se è in complemento a 2 abbiamo gia sommato 1 e invertito gli zeri con gli uni e viceversa giusto?), e inverto i numeri (complemento a 1) -----> 110110 ma sicuramente sbaglio qualcosa perchè il risultato non mi viene..



potreste correggermi questi 3 esercizi??

grazie mille!!!

Risposte
hamming_burst
Ciao,

1) ok
2) Sbagli: passaggi da fare,
- vai di divisoni successive come per l'es 1) così avrai il corrispondete in base 2 del numero unsigned 17.
- Aggiungi un bit 0, perchè anche in complemento a 2 il numero positivo è identico in qualunque conversione.
- Fai il complemento del numero, sommi 1 e magia hai il numero.

3) vai di moltiplicazioni posizionali

semplice :-)

leonarth
moltiplicazioni posizionali.. cioè?

hamming_burst
se sai, qualsiasi rappresentazione numerica è posizionale.

Es: $(123)_10 = 1*10^2 + 2*10^1 + 3*10^0$

equivalente per qualunque base, basta che moltiplichi per la base giusta però :-)

leonarth
"ham_burst":
se sai, qualsiasi rappresentazione numerica è posizionale.

Es: $(123)_10 = 1*10^2 + 2*10^1 + 3*10^0$

equivalente per qualunque base, basta che moltiplichi per la base giusta però :-)


solo questo??? anche se c' è scritto che il numero è in base 2?

hamming_burst
leggi bene i post.

es 3) un numero intero positivo in base 2 inizia SEMPRE per 0, perciò se il numero 001010 in complemento a 2, in modulo e segno, ecc inzia sempre per 0, perciò non devi fare trasformazioni di sorta.
Devi solo moltiplicare come ti ho mostrato come esempio con la base 10.

con la base 2 (e vale per la base 13) togli un bit visto che è il segno: $(01010)_2 = 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = $ a te.

semplice :-)

leonarth
"ham_burst":
leggi bene i post.

es 3) un numero intero positivo in base 2 inizia SEMPRE per 0, perciò se il numero 001010 in complemento a 2, in modulo e segno, ecc inzia sempre per 0, perciò non devi fare trasformazioni di sorta.
Devi solo moltiplicare come ti ho mostrato come esempio con la base 10.

con la base 2 (e vale per la base 13) togli un bit visto che è il segno: $(01010)_2 = 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = $ a te.

semplice :-)


e se fosse stato 101010? levo comunque l'1 che rappresenta che è un numero negativo, e faccio le moltiplicazioni posizionali? o in quel caso, visto che so che è negativo, devo invertire anche gli zeri e gli uni??

hamming_burst
bhe allora:

sia $x$ un numero positivo, complemento2() la funzione.

complemento2$(x) = x'$ , un numero negativo

complemento2$(x') = x$, un numero positivo. Perciò: complemento2$($complemento$2(x)) = x$. Questo per dirti che è una funzione invertibile.

terra-terra: hai un numero negativo in complemento a 2, per farlo diventare positivo, riapplichi il complemento a 2 (e non esiste la sottrazione in complemento a 2, xkè fai -1?)

leonarth
perche per complementare a 2 si complementa ad 1 (si invertono 0 e 1) e si somma 1.. (così ho scritto negli appunti) perciò pensavo di fare il ragionamento inverso..

leonarth
scusate se insisto, ma ho problemi ancora con un altro esercizio!!!
mi chiede

il numero decimale +23 a quale numerio binario corrisponde nella rappresentazione degli interi relativi in complemento a due con 5 bit?

io faccio le moltiplicazioni posizionali e mi trovo in binario cosa corrisponde a 23 cioè 10111

ma la prima cifra è un 1 quindi rappresenta un numero negativo giusto?!?!

e quindi COME PROSEGUO!?!?!?


scusate ragazzi ma domani ho un esonero e non vorrei sbagliare le conversioni!!

grazie mille!!

hamming_burst
ciao,

l'intero relativo +23, un intero con segno con 5 bit non può essere rappresentato.

Se leggi bene cosa ti ho scritto nei precedenti post:

- interi positivi sono uguali in qualunque rappresentazione, inizia SEMPRE con simbolo 0.
- interi negativi si distinguono da rappresentazione a rappresentazione. Il complemento a 2 si applica solo qua. Inizia SEMPRE con simbolo 1.

perciò:

+23 = 010111

se sei con 5 bit 10111 sei in un caso di underflow (se ricordo bene).

hee136
Con numeri in complemento a due di $ n $ cifre puoi rappresentare numeri interi positivi fino a $ (2)^(n-1) - 1 $

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.