Base: potenza di 2

Dato il numero N rappresentato in base 2 come sequenza di cifre (bit) c7, c6, c5, c4, c3, c2, c1 e c0 (supponiamo che 8 cifre siano sufficienti)

N = (c7c6c5c4c3c2c1c0)2

Considera il significato delle cifre secondo la notazione posizionale

N = c7·27 + c6·26 + c5·25 + c4·24+c3·23 + c2·22 + c1·21 + c0·20

raccogli

N = (c7·27 + c6·26 + c5·25 + c4·24)·24 + (c3·23 + c2·22 + c1·21 + c0·20)

poni

C1 = (c7·27 + c6·26 + c5·25 + c4·24), il numero da 0 a 15 nella 1° parentesi
C0 = (c3·23 + c2·22 + c1·21 + c0·20), il numero da 0 a 15 nella 2° parentesi

allora

N = C1·161 + C0·160
N = (C1C0)16

La conversione dalla base 2 alla base 16 si ottiene

  1. raccogliendo le cifre da destra verso sinistra in gruppi di 4
  2. trasformandoli nella cifra esadecimale corrispondente al loro valore in base 10!


Con considerazioni analoghe si passa dalla base 2 alla base 4

  1. raccogliendo le cifre da destra verso sinistra in gruppi di 2
  2. trasformandoli nella cifra in base 4 corrispondente al loro valore in base 10

N = c7·27 + c6·26 + c5·25 + c4·24 + c3·23 + c2·22 + c1·21 + c0·20
N = (c7·21 + c6·20)·26 + (c5·21 + c4·20)·24 + (c3·21 + c2·20)·22 + ( c1·21 + c0·20)·20
N = (c7·21 + c6·20)·43 + (c5·21 + c4·20)·42 + (c3·21 + c2·20)·41 + ( c1·21 + c0·20)·40
N =  C3·43 + C2·42 + C1·41 + C0·40
N = (C3C2C1C0)4


Con considerazioni analoghe si passa dalla base 2 alla base 8

  1. raccogliendo le cifre da destra verso sinistra in gruppi di 3
  2. trasformandoli nella cifra ottale corrispondente al loro valore in base 10

N = c8·28 + c7·27 + c6·26c5·25 + c4·24 + c3·23 + c2·22 + c1·21 + c0·20
N = (c8·22 + c7·21 + c6·20 +)·26 + (c5·22 + c4·21 + c3·20 +)·23 + (c2·22c1·21 + c0·20)·20
N = (c8·22 + c7·21 + c6·20 +)·82 + (c5·22 + c4·21 + c3·20 +)·81 + (c2·22c1·21 + c0·20)·80
N = C2·82C1·81 + C0·80
N = (C2C1C0)8


Ripetendo alla rovescia tutti i passi si passa da base 4/8/16 a base 2



Codifica: Python

Notice: This work is licensed under a BY-NC-SA. Permalink: Base: potenza di 2

Comments are closed.