poniamo per esempio un singolo byte:

10000000

questo vale 256

ma se io il singolo byte lo ho così:

11111111

varrà 256+128+64+32+16+8+4+2+1
quindi il valore massimo contenibile non è 2^8

ma 2^8 + 2^7 etc...



immagina di trasporre la cosa su 128KByte cioè 128 000 byte cioè

1.024.000 bit

facendo 2^1024000 non ottieni il numero massimo contenibile in quello spazio di memoria ma ottieni solo il numero contenuto se hai l'ultimo bit a 1 e tutto il resto a 0...


quindi io ho bisogno di sapere quanto viene

2^1024000 + 2^1023999 + 2^1023998 .......fino a 2^0
si ma il numero 2^1024000 + 2^1023999 + 2^1023998 .......fino a 2^0
non è che il numero 2^1024001 - 1,capito?Prova a farlo su un numero di bit minore ade esempio 8.Se tu devi calcolare 11111111 cioè 2^7 +..+ 2^0 non hai che da andare su 9 bit,calcolarti 2^8 (cioè 100000000) e sottrarre 1.