Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - programmazzione Pascal
Forum - Pascal - programmazzione Pascal

Avatar
sole (Normal User)
Newbie


Messaggi: 3
Iscritto: 11/01/2010

Segnala al moderatore
Postato alle 12:50
Venerdì, 01/10/2010
Questo topic è stato chiuso dal moderatore

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-|

PM
Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 17:12
Venerdì, 01/10/2010
mi sa che questo post violi qualche regola.
Agli amministratori il compito di verficare.

PM
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Up
1
Down
V
Segnala al moderatore
Postato alle 20:27
Venerdì, 01/10/2010
Il link alla guida sarebbe:
http://www.pierotofy.it/pages/guide/Guida_Pascal/Appendice ...

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:

Codice sorgente - presumibilmente Delphi

  1. var b:byte; (*range: 0..255*)
  2. (*...*)
  3. b=128
  4. b shl 1 = 1000000 shl 1 = 0000000 = 0
  5.  
  6. var b:integer; (*range: -32768..32767*)
  7. (*...*)
  8. b=128
  9. b shl 1 = 000000010000000 shl 1 = 000000100000000 = 256



PM
Avatar
totipianurese (Member)
Pro


Messaggi: 168
Iscritto: 24/06/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 16:20
Venerdì, 01/10/2010
In questo sito c'e' un articolo riguardante la conversione da binario a decimale.
http://www.pierotofy.it/pages/guide_tutorials/Informatica/ ...

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 il 01/10/2010 alle 16:22
PM
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 20:34
Venerdì, 01/10/2010
Testo quotato

Postato originariamente da a_butta:

mi sa che questo post violi qualche regola.


PM