3
respostas

2^n pode ser representado em ´´n´´bits?

no vídeo é falado que 1 byte são 8 bits; e que pode representar 256 (1111 1111); porem, se 1 bit ligado(1) é 2^0, 2 bits ligados(11) são 2^1 + 2^0 e assim por diante,o numero de bits não engloba a equação de 2 elevado a esse mesmo numero; podemos dizer que 8 bits ligados (1111 1111) seria o resultado do somatório2^n onde ´´n´´ varia entre ´´0´´ a ´´n-1´´; 2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 +2^0 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255; não chegando no 2^8 = 256, sem chegando no 2^8 - 1 = 255; a minha duvida é, qual a linha de raciocínio esta certa? ou se eu interpretei a algo do vídeo de forma erronia.

3 respostas

Olá Sylvia, tudo bem?

Não cheguei a ver o vídeo em si, mas a sua linha de raciocínio está correta. A contagem dos binários é começada a partir da posição 0, por isso que por exemplo se temos 8 bits 1 (1 1 1 1 1 1 1 1), a posição mais a direita seria a posição 0, a posição anterior seria a posição 1, a posição anterior seria a 2 até chegar no primeiro bit da esquerda para a direita que seria a posição 7, para você descobrir o número decimal você faz a soma que você mencionou acima (2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 +2^0 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255).

Para verificar se a conta está certa podemos usar a calculadora do Windows e alterá-la para o modo programador (símbolo com as três linhas) e nesse modo podemos ver a o valor binário e decimal de um valor.

Abs

Olá Sylvia.

Sua linha de raciocínio está correta. Não é possível representar o número 2^n com apenas n bits. O que o vídeo conta, e deve estar te confundindo, é algo um pouquinho diferente: a quantidade de números que podem ser representados com n bits. Nesse caso, a resposta é exatamente 2^n, pois também podemos representar o número 0.

Exemplo com 3 bits:

2^3 = 8

Não é possível representar o número 8 com apenas 3 bits, pois 8 em binário é 1000, e isso utiliza 4 bits. Porém, existem 8 números diferentes que podem ser representados com 3 bits. Eles são:

decimal - binario
0 - 000
1 - 001
2 - 010
3 - 011
4 - 100
5 - 101
6 - 110
7 - 111

Resumindo: com n bits não é possível representar o número 2^n mas é possível representar 2^n números diferentes, usualmente de 0 a 2^n - 1.

O somatório das n primeiras potências de 2, ou seja, de 2^0 a 2^(n - 1), é definido pela fórmula fechada: 2^n - 1. Aplicando essa fórmula, temos que o somatório das 8 primeiras potências de 2 é 255.

1 byte, entretanto, pode conter 256 valores distintos, pois sua gama de valores vai de 0 a 255. Ou seja, com n bits, podemos representar 2^n valores. Mas é preciso que se tenha atenção a um detalhe, um char padrão assume valores entre -128 e 127, já um unsigned char representa valores entre 0 a 255.

Não vi o vídeo, mas acredito que seja isso que tenha sido dito.