Introdução à Linguagem C – Tutorial I
Pra começar, um brevíssimo resumo sobre a história da linguagem C:
É uma linguagem procedural, de alto nível e foi criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, com o propósito de desenvolver o Sistema Operacional UNIX(originalmente desenvolvido em Assembly).
Este tutorial, considero de nível básico, uma introdução a linguagem C e tem o objetivo de auxiliar no entendimento prático desta linguagem, que geralmente, é usada já no primeiro período dos cursos superiores de TI.
Este programa, tem o objetivo de converter valores decimais em binários, hexadecimais ou octais, conforme a escolha do usuário. Chamei este programa de “conversor.c”.
Segue o código comentado:
Uma observação: usuários Linux não devem e não precisam usar a biblioteca conio.h e sua função getch().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
// Adicionando bibliotecas necessárias para este programa // stdio.h é responsável pelas funções de entrada e saída de // dados: printf e scanf #include <stdio.h> // conio.h só é necessária para usuários Windows // é responsável pela função getch() //#include <conio.h> int main() { int opcao, ent, resto[10], i, cont; printf("Digite uma opcao:\n\n"); printf("\tDecimal p/ Binario: 1 + <Enter>\n"); printf("\tDecimal p/ Hexadecimal: 2 + <Enter>\n"); printf("\tDecimal p/ Octal: 3 + <Enter>\n"); scanf("%d",&opcao); // Este bloco converte de decimal para binário switch(opcao) { case 1: i = 0; printf("Digite um numero decimal: "); scanf("%d",&ent); while(ent >= 1) { // a variavel resto é um vetor e o % corresponde ao // mod resto[i] = ent % 2; ent = ent / 2; // aqui eu incremento o contador i++; } cont = i - 1; while(cont >= 0) { printf("%d",resto[cont]); // aqui eu decremento o contador, para mostrar // os valores do ultimo para o primeiro cont--; } break; // Este bloco converte de decimal para hexadecimal case 2: i = 0; printf("Digite um numero decimal: "); scanf("%d",&ent); while(ent >=15) { resto[i] = ent % 16; ent = ent / 16; i++; } resto[i] = ent % 16; cont = i; while(cont >= 0) { if(resto[cont] == 10) printf("A"); else if(resto[cont] == 11) printf("B"); else if(resto[cont] == 12) printf("C"); else if(resto[cont] == 13) printf("D"); else if(resto[cont] == 14) printf("E"); else if(resto[cont] == 15) printf("F"); else printf("%d",resto[cont]); cont--; } break; // Este bloco converte de decimal para octal case 3: case 3: i = 0; printf("Digite um numero decimal: "); scanf("%d",&ent); while(ent >= 8) { resto[i] = ent % 8; ent = ent / 8; i++; } resto[i] = ent % 8; cont = i; while(cont >= 0) { printf("%d",resto[cont]); cont--; } break; // Caso o usuario digite um caracter, diferente de 1, // 2 e 3 default: printf("Opcao invalida!!!\n"); break; } // Fim do switch printf("\n"); // Esta funcao pausa a execucao e aguarda uma intervenção // do usuario para sair do programa. Obs.: Só funciona no // Windows //getch(); return(0); } |
Para aprender como compilar arquivos .c no Linux, leia a dica Compilando arquivos .c no Linux.
Críticas, dúvidas ou sugestões, entre em contato.
Olá, sua aula foi otima!
Estou cursando analise e desenvolvimento de sistemas, sua aula me ajudou bastante, mas gostaria de saber como fazer o inverso, tipo, de binario para hexadecimal, de binario para outro valor, desde já muito obrigado.