A ver si te queda mas claro, si trabajamos con numeros binarios, tenemos que trabajar con base "2" y donde el exponente es el numero de bits, entonces:
2^(0)=1
2^(1)=2
2^(2)=4
2^(3)=8
....
2^(10)=1024
Que te dice eso:
- Con 1 bit solo podes generar 2 estados posibles, 0 y 1
- Con 2 bits solo podes generar 4 estados posibles, 00-01-10-11
....
- Con 10 bits solo podes generar 1024 estados posibles (te lo dejo a vos las posibilidades
).
Entonces, si yo tengo 1Gbytes, es decir que tengo que direccionar 1024*1024*1024 posibilidades, si dijimos que para generar 1024 posibilidades nos alcanzaba con 10 bits y conociendo las propiedades de las potencias, sabemos que:
2^(10)*2^(10)*2^(10) =2^(10+10+10)=2^(30)
Eso quiere decir que con 30 bits puedo generar 1024*1024*1024 posibilidades.
Otra forma seria aplicando la inversa de una potencia, que seria el logaritmo en base 2:
Cant. bits= log2(1024*1024*1024)=log10(1024*1024*1024)/log10(2)=30
Editado:
Ahora, algo distinto es hacer eso que pusiste:
8*1024*1024*1024 => Eso significa cuanto equivale 1GByte en bits, que no es lo mismo cuantos bits de direccionamiento se requiere para manejar una memoria de 1Gbyte.