Os registradores são grupos de 8 ou 16 flip-flops.
Um flip-flop é um dispositivo capaz de armazenar 2 níveis de voltagem, um baixo, geralmente 0.5 volts, e outro comumente de 5 volts. O nível baixo de energia no flip-flop é interpretado como desligado ou 0, e o nível alto, como ligado ou 1. Estes estados são geralmente conhecidos como bits, que são a menor unidade de informação num computador.
Um grupo de 16 bits é conhecido como palavra; uma palavra pode ser dividida em grupos de 8 bits chamados bytes, e grupos de 4 bits chamados nibbles.
É possível representar um determinado número em qualquer base através da seguinte fórmula:
Onde n é a posição do dígito, iniciando da direita para a esquerda e numerando de 0. D é o dígito sobre o qual nós operamos e B é a base numérica usada.
O sistema binário é baseado em apenas duas condições ou estados, estar ligado(1), ou desligado(0), portanto sua base é dois.
Para a conversão, podemos usar a fórmula de valor posicional:
Por exemplo, se tivermos o número binário 10011, tomamos cada dígito da direita para a esquerda e o multiplicamos pela base, elevando à potência correspondente à sua posição relativa:
Binary: 1 1 0 0 1 Decimal: 1*2^0 + 1*2^1 + 0*2^2 + 0*2^3 + 1*2^4 = 1 + 2 + 0 + 0 + 16 = 19 decimal.O caracter ^ é usado em computação como símbolo para potência e * para a multiplicação.
O método resume-se na aplicação de divisões sucessivas por 2, mantendo o resto como o dígito binário e o resultado como o próximo número a ser dividido.
Tomemos como exemplo o número decimal 43.
43/2=21 e o resto é 1; 21/2=10 e o resto é 1; 10/2=5 e o resto é 0; 5/2=2 e o resto é 1; 2/2=1 e o resto é 0; 1/2=0.5 e o resto é 1.Para construir o equivalente binário de 43, vamos pegar os restos obtidos de baixo para cima, assim temos 101011.
A conversão entre números binários e hexadecimais é fácil. A primeira coisa a fazer é dividir o número binário em grupos de 4 bits, começando da direita para a esquerda. Se no grupo mais à direita sobrarem dígitos, completamos com zeros.
Tomando como exemplo o número binário 101011, vamos dividi-lo em grupos de 4 bits:
10;1011
Preenchendo o último grupo com zeros (o um mais à esquerda):
0010;1011
A seguir, tomamos cada grupo como um número independente e consideramos o seu valor decimal:
0010=2;1011=11
Entretanto, observa-se que não podemos representar este número como 211, isto seria um erro, uma vez que os números em hexa maiores que 9 e menores que 16 são representados pelas letras A,B,...,F. Logo, obtemos como resultado:
2Bh, onde B=11 e o "h" representa a base hexadecimal.
Para a conversão de um número hexadecimal em binário é apenas necessário inverter os passos: tomamos o primeiro dígito hexadecimal e o convertemos para binário, a seguir o segundo, e assim por diante.
Deste modo, cada letra, dígito ou caracter especial ocupa 1 byte na memória do computador.
Podemos observar que este método de representação de dados é muito ineficiente no aspecto numérico, uma vez que no formato binário 1 byte não é suficiente para representar números de 0 a 255, com o ASCII podemos representar apenas um dígito.
Devido a esta ineficiência, o código ASCII é usado, principalmente, para a representação de textos.
Neste método grupos de 4 bits são usados para representar cada dígito decimal de 0 a 9. Com este método podemos representar 2 dígitos por byte de informação.
Vemos que este método vem a ser muito mais prático para representação numérica do que o código ASCII. Embora ainda menos prático do que o binário, com o método BCD podemos representar dígitos de 0 a 99. Com o binário, vemos que o alcance é maior, de 0 a 255.
Este formato (BCD) é principalmente usado na representação de números grandes, aplicações comerciais, devido às suas facilidades de operação.
Por exemplo o número decimal 1234000, é representado como 1.234*10^6, observamos que o expoente irá indicar o número de casas que o ponto decimal deve ser movido para a direita, a fim de obtermos o número original.
O expoente negativo, por outro lado, indica o número de casas que o ponto decimal deve se locomover para a esquerda.