Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
01/10/10 10:50
sole
help me!!!!devo svolgere questo problema:realizzare un programma che converte da binario a decimale ..ora il problema è qualè la formula da usare per fare la conversione????????
ps:(stiamo lavorando con gli array)8-|8-|
aaa
01/10/10 14:20
totipianurese
In questo sito c'e' un articolo riguardante la conversione da binario a decimale.
pierotofy.it/pages/guide_tutorials/Informatica/Conversione_da_binario_a_Decimale/

Leggitela.

Cmq ti faccio un altro esempio.

Binario
10111010

decimale:
1*(2^7)+0*(2^6)+1*(2^5)+1*(2^4)+1*(2^3)+0*(2^2)+1*(2^1)+0*(2^0)

Questa e' la formula completa, ovviamente quando c'e' 0*(qualcosa), non c'e' bisogno nemmeno di scriverlo, tanto zero per qualcosa fa sempre zero.

Ultima modifica effettuata da totipianurese 01/10/10 14:22
aaa
01/10/10 15:12
a_butta
mi sa che questo post violi qualche regola.
Agli amministratori il compito di verficare.
aaa
01/10/10 18:27
Phi
Il link alla guida sarebbe:
pierotofy.it/pages/guide/Guida_Pascal/Appendice_2__La_notazione_binaria_e_gli_operatori_di_shift/

Date che a me da errore posto il vecchio contenuto:

Capitolo 21° - Appendice 2 La notazione binaria e gli operatori di shift

A cura di: Totem
<< Precedente    Prossimo >>
        
    
Il codice binario, o notazione binaria, è usato sempre dal computer, per ogni operazione, soltanto che noi non lo sappiamo perché questo è il modo più semplice per le macchine di scambiare informazioni. Quando si compila un programma, il compilatore trasforma ogni istruzione in una serie di 0 e 1, che l’elaboratore poi esegue.
E’ il più semplice sistema di notazione esistente e ha due cifre, 0 e 1. Essendo binario, ogni cifra viene moltiplicata per 2 elevato alla posizione che occupa nel numero meno 1 (le cifre a destra occupano le prime posizioni). Ma è molto più comprensibile un esempio:

1 = 1*2e(1-1) = 1*20 = 1
101 = 1*2e2 + 0*2e1 + 1*2e0 = 4 + 0 + 1 = 5
110101 = 1*2e5 + 1*2e4 + 0*2e3 + 1*2e2 + 0*2e1 + 1*2e0 = 32+16+0+4+0+1 =53

Se nella notazione decimale (quella che usiamo normalmente) abbiamo le decine, le centinaia e le migliaia, nel sistema binario ci sono le duine, le quartine e le ottine, per metterla su un piano molto banale e semplicistico. Un altro esempio:

95 = 90 + 5 = 9*101 + 5*100 (*Sistema decimale*)
95 = 64 + 16 + 8 + 4 + 2 + 1 = 26 + 24 + 23 + 22 + 21 + 20 =
1*2e6 + 0*2e5 + 1*2e4 + 1*2e3 + 1*2e2 + 1*2e1 + 1*2e0 = 1011111 (*Binario*)

Ogni 1 e 0 è un bit, perciò lo shift a destra shr sposta tutti i bit a destra di x posti, mentre shl fa lo stesso a sinistra. Bisogna, però, considerare il tipo di variabile, perché un byte occupa meno di un integer e quindi avrà mano bit a disposizione, per esempio:

var b:byte; (*range: 0..255*)
(*...*)
b=128
b shl 1 = 1000000 shl 1 = 0000000 = 0

var b:integer; (*range: -32768..32767*)
(*...*)
b=128
b shl 1 = 000000010000000 shl 1 = 000000100000000 = 256

aaa
01/10/10 18:34
Phi
Postato originariamente da a_butta:

mi sa che questo post violi qualche regola.


Regolamento:

pierotofy.it/pages/extras/forum/9/3839-regolamento/
aaa