Binário para Decimal, Hexa, Char
Publicado por Enzo de Brito Ferber 09/01/2006
[ Hits: 16.444 ]
Homepage: http://www.maximasonorizacao.com.br
Programa que tranforma um
numero Binário em decimal,
hexadecimal ou caractere.
(É [*****] num ter nada pra
fazer... Depois da outro que
fiz para tranformar decimal,
hexa e char em binario, tinha
que fazer um que fizesse o
contrário... ;) )
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define decimal 1
#define hexa 2
#define caractere 3
int clear(void){
   system("clear");
}
int binNum(char bin[], int type){
    int i;
    int j;
    int num=0;
    for(i=0;i<8;i++){
        if(bin[i] == '1')
                num = (num*2)+1;
        if(bin[i] == '0')
                num = (num*2);
    }
    if(type==1) printf("Decimal: %d", num);
    if(type==2) printf("Hexadecimal: %x", num);
    if(type==3) printf("Caractere: %c", num);
}
int menu(void){
    char opcao[10];
    int op;
    clear();
    printf("\n");
    printf("\t1. Binario para decimal\n");
    printf("\t2. Binario para hexadecimal\n");
    printf("\t3. Binario para caractere\n");
    printf("\t4. Sair\n\n");
    do{
        inicio:
        printf("\tDigite sua opcao: ");
        gets(opcao);
        op = atoi(opcao);
        switch(op){
                case 1:
                                binDecimal();
                                break;
                case 2:
                                binHexa();
                                break;
                case 3:
                                binChar();
                                break;
                case 4:
                                exit(0);
                default:
                                printf("Opcao Invalida\n");
                                goto inicio;
        }
    }while(1);
}
int binDecimal(void){
    int i;
    char bin[8];
    char espera;
    clear();
    printf("Digite o numero binario: ");
    gets(bin);
    binNum(bin, decimal);
    __fpurge(stdin);
    espera = getchar();
    if(espera) menu();
}
int binHexa(void){
    int i;
    char bin[8];
    char espera;
    clear();
    printf("Digite o numero binario: ");
    gets(bin);
    binNum(bin, hexa);
    __fpurge(stdin);
    espera = getchar();
    if(espera) menu();
}
int binChar(void){
    int i;
    char bin[8];
    char espera;
    clear();
    printf("Digite o numero binario: ");
    gets(bin);
    binNum(bin, caractere);
    __fpurge(stdin);
    espera = getchar();
    if(espera) menu();
}
int main(void){
    menu();
}
Função simples recursiva para fibonacci
Teoria do Caos - (Equação Logística)
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Secure boot, artigo interessante, nada técnico. (4)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (14)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









