Noções básicas de binário para Programação C
Felizmente, você não tem que programar qualquer dispositivo digital, escrevendo código de baixo nível, lançando interruptores, ou fios de solda. Isso porque a programação de hoje C acontece em um nível superior. Mas ainda assim, no fundo da máquina, que tipo de codificação de baixo nível continua. Você só está isolado da sopa primordial de uns e zeros a partir do qual todos os softwares sobe.
Introdução ao binário
Os dígitos binários, ou bocados, são 1 e 0. Sozinho, eles são débil mas em grupos, eles reunir grande poder. armazenamento digital usa esses bits em grupos.
Prazo | C variável | Bits | Intervalo de valores sem sinal | Range Value Assinado |
---|---|---|---|---|
Pouco | _Bool | 1 | 0-1 | 0-1 |
Byte | carbonizar | 8 | 0 a 255 | -128-127 |
Palavra | short int | 16 | 0 a 65.535 | -32.768 a 32.767 |
Longo | long int | 32 | 0 a 4294967295 | -2,147,483,648 a 2.147.483.647 |
A vantagem de agrupar bits em bytes, palavras, e assim por diante é que ele torna-os mais fáceis de manusear. O processador pode lidar melhor com as informações em blocos. Como pedaços de obter os seus valores é baseado em potências de 2.
Expressão | Valor decimal | Valor binário |
---|---|---|
20 | 1 | 1 |
21 | 2 | 10 |
22 | 4 | 100 |
23 | 8 | 1000 |
24 | 16 | 10000 |
25 | 32 | 100000 |
26 | 64 | 1000000 |
27 | 128 | 10000000 |
Ver a gama de valores que podem ser armazenados em 8 bits, ou um byte. É o mesmo intervalo que você encontraria em uma variável de char linguagem C. Com efeito, se total da coluna 2, obtém 255, que é o número de bits de um byte.
Na verdade, você vai encontrar 256 valores possíveis para um byte, que inclui a todos de zero permutação. Isso é um valor bem.
Abaixo mostra como as potências de 2 mapa para o armazenamento binário. Assim como casas decimais em um aumento de número de base 10 por potências de 10, bits em um aumento de número binário por potências de 2, leitura da direita para a esquerda.
Cada bit que está definido, ou tem o valor 1, representa uma potência de dois: 25, 23, 21, e 20. Quando você multiplicar esses valores pelos seus homólogos decimais e, em seguida, somam-los, você começa a representação decimal do binário 00101011, que é de 43.
Isso é tudo muito bem, mas por favor não memorizá-lo!
Não se preocupe com a tradução do binário em decimal valores- o computador faz esse trabalho para você o tempo todo. Na verdade, o computador vê apenas binário e, em seguida, exibe números decimais como uma cortesia para os seus globos oculares humanos. Mas quando você manipula valores binários, que ajuda a saber o que está acontecendo.
Alterando o valor de um bit de 1 é referido como definindo o bit.
Alterando o valor de um bit para 0 é referido como repor um pouco.
Como exibir valores binários
Para melhor fazer sentido de os operadores de manipulação de binários da linguagem C, que ajuda a ver um número binário em ação. A função printf () não tem um carácter de conversão binário, ea biblioteca C não hospeda uma função de saída binária. Não, para ver um número binário, você tem que criar sua própria função.
o binbin () Função apresenta uma função de saída binário chamado binbin (). A função binbin (), na Linha 15 em The binbin () Função, engole um valor int. Sua saída é uma string representando o valor int em dígitos binários.
A Binbin () FUNÇÃO
#include char * binbin (int n) -int main () {int input-printf ( "Digite um valor de 0 a 255:") -scanf -printf ( "% d", de entrada) ( "% d é binário% s n ", de entrada, binbin (entrada)) - retorno (0) -} char * binbin (int n) {bin static char [9] -int x-for (x = 0-xlt; 8-x ++) {bin [x] n = 0x80? '1': '0'-n lt; lt; = 1} bin [x] = ' 0'-retorno (bin) -}
De um modo geral, o conteúdo da função binbin () aparecem bastante misterioso. Está bem.
Exercício 1: Digite o código-fonte do binbin () Funcionar em um novo projeto. Construir e executá-lo algumas vezes para ver como números inteiros aparecem como números binários.
Como está escrito na binbin () Função, binbin () exibe apenas 8 bits de dados, embora o tipo de variável int normalmente armazena muitos mais bits.
Exercício 2: Modificar a função binbin () a partir do binbin () Função para que ele exibe 16 bits do valor int. (Bem, tecnicamente, 16 bits é um short int.) Para fazer isso, você precisa mudar esses itens:
Linha 9: Alterar o texto para que 65535 é especificado em vez de 255.
Linha 17: Modificar o tamanho da matriz para 17 a conta para 16 caracteres na saída mais o (caractere nulo) 0 no final da cadeia.
Linha 20: Ajuste o valor imediato 8 no código para 16 para ter em conta todos os 16 caracteres na saída.
Linha 22: Substitua o valor 0x80 com 0x8000. Esta mudança faz com que o campo pouco maior.
Construir Exercício 2. Execute-o algumas vezes para ver o que o campo de bits se parece para valores maiores.