[C] Decimal -> Binario

Publicado por Enzo de Brito Ferber 05/04/2006

[ Hits: 7.690 ]

Homepage: http://www.maximasonorizacao.com.br

Download binario.c




Programa que converte numeros decimais em binario usando operadores bit-bit padrões do C.
Muito bom para se entender operadores bit-bit e conversao de numeros...

  



Esconder código-fonte

/*
 * Programa: Binário
 * Arquivo: binario.c
 * Autor: Enzo Ferber 'Slackware_10'
 */
 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define FLUSH __fpurge(stdin); //fflush(stdin) em sistemas windows

int converter(int num){
    printf("%d", (num & 0x80) / 0x80); //bit 7
    printf("%d", (num & 0x40) / 0x40); //bit 6
    printf("%d", (num & 0x20) / 0x20); //bit 5
    printf("%d", (num & 0x10) / 0x10); //bit 4
    printf("%d", (num & 0x08) / 0x08); //bit 3
    printf("%d", (num & 0x04) / 0x04); //bit 2
    printf("%d", (num & 0x02) / 0x02); //bit 1
    printf("%d", (num & 0x01) / 0x01); //bit 0
    /* Quando ha uma coversao decimal->binario, o bit 7 vem em 
     * primeiro lugar, e o 0 em ultimo.
     * Exemplo: Converter 65 (A) em binario
     * 65 | 2 (resto 1) bit 0
     * 32 | 2 (resto 0) bit 1
     * 16 | 2 (resto 0) bit 2
     * ...
     * Depois se inverte os bits:
     * B = bit
     * B7 B6 B5 B4 B3 B2 B1 B0 
     */
}

int main(void){
    int num;
    while(1){
        system("clear"); //cls em sistemas windows
        printf("Numero a converter: ");
        FLUSH
        scanf("%d", &num);
        if(num == -1) break; //garante um loop nao infinito
        converter(num);
        FLUSH
        getchar();
    }
    return 0;
}

Scripts recomendados

Máquina virtual

Jogo da Velha contra o Computador.

Countup

Calculo calorico visando perca de gordura e definicao muscular

Função simples de criptografia em um vetor


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts