Advertisement
Mateus_Costa

(Didático) Validação de bases numéricas em C

May 26th, 2019
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. /*****************************************************
  2.  * Validação binário.
  3.  * Caracteres permitidos: 0 - 1
  4.  *****************************************************/
  5. char valBase2[33];
  6. int valido = 0;
  7.  
  8. while(!valido) {
  9.     printf("Digite o valor em BIN: ");
  10.     setbuf(stdin, NULL);
  11.     scanf("%s", valBase2);
  12.  
  13.     int i = 0;
  14.     while(valBase2[i] != '\0') {
  15.         /* caracteres permitidos */
  16.         if(valBase2[i] == '0' || valBase2[i] == '1') {
  17.             valido = 1;
  18.         }
  19.         else {
  20.             valido = 0;
  21.         }
  22.         i++;
  23.     }
  24. }
  25.  
  26. /*****************************************************
  27.  * Validação octal.
  28.  * Caracteres permitidos: 0 - 7
  29.  *****************************************************/
  30. char valBase8[33]; /* precisão de 32 dígitos + EOS */
  31. int valido = 0;
  32.  
  33. while(!valido) {
  34.     printf("Digite o valor em OCT: ");
  35.     setbuf(stdin, NULL);
  36.     scanf("%s", valBase8);
  37.  
  38.     int i = 0;
  39.     while(valBase8[i] != '\0') {
  40.         /* caracteres permitidos */
  41.         if(valBase8[i] >= '0' && valBase8[i] <= '7') {
  42.             valido = 1;
  43.         }
  44.         else {
  45.             valido = 0;
  46.         }
  47.         i++;
  48.     }
  49. }
  50.  
  51. /*****************************************************
  52.  * Validação hexadecimal.
  53.  * Caracteres permitidos: 0 - 9, A - F, a - f
  54.  *****************************************************/
  55. char valBase16[33]; /* precisão de 32 dígitos + EOS */
  56. int valido = 0;
  57.  
  58. while(!valido) {
  59.     printf("Digite o valor em HEX: ");
  60.     setbuf(stdin, NULL);
  61.     scanf("%s", valBase16);
  62.  
  63.     int i = 0;
  64.     while(valBase16[i] != '\0') {
  65.         /* caracteres permitidos */
  66.         if((valBase16[i] >= '0' && valBase16[i] <= '9') ||
  67.            (valBase16[i] >= 'A' && valBase16[i] <= 'F') ||
  68.            (valBase16[i] >= 'a' && valBase16[i] <= 'f'))
  69.         {
  70.             valido = 1;
  71.         }
  72.         else {
  73.             valido = 0;
  74.         }
  75.         i++;
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement