Skip to content

Commit

Permalink
Update convercoes.c
Browse files Browse the repository at this point in the history
  • Loading branch information
felipefrm committed Jun 5, 2018
1 parent 4f988ef commit 4873a09
Showing 1 changed file with 13 additions and 120 deletions.
133 changes: 13 additions & 120 deletions convercoes.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include "convercoes.h"
#include <math.h>

int transforma_char(char num){ // FUNÇÕES
int transformaChar(char num){ // FUNÇÕES

if (num >= 48 && num <= 57)
num = num - 48;
Expand Down Expand Up @@ -29,7 +29,7 @@ int transforma_char(char num){ // FUNÇÕES
return num;
}

char transforma_int(int num){
char transformaInt(int num){

if (num >= 0 && num <= 9)
num = num + 48;
Expand Down Expand Up @@ -57,125 +57,18 @@ char transforma_int(int num){
return num;
}

int verifica_valor(char num[], int num_digitos){
int tem_valor = 0;
for (int i=1; i<num_digitos; i++){ //i=0 é o sinal.
if(num[i] != '0'){
tem_valor = 1;
}
}
return tem_valor;
}

int verifica_sinal(char num[]){
int tem_sinal = 1;
if (num[0] != '+' && num[0] != '-'){
tem_sinal = 0;
}
return tem_sinal;
}

int verifica_ponto(char num[], int num_digitos){
int ponto = 0;
for (int i=1; i < num_digitos; i++){
if (num[i] == '.'){
ponto = i;
return ponto;
}
}
return ponto;
}

int verifica_numero(char num[], int b_origem, int ponto, int num_digitos){

int i, verif_num = 1;
if (b_origem == 2){
for (i=1; i<ponto; i++){
if (num[i] < 48 || num[i] > 49){
verif_num = 0;
return verif_num;
}
}
for (i=ponto+1; i<num_digitos; i++){
if (num[i] < 48 || num[i] > 49){
verif_num = 0;
return verif_num;
}
}
}
else if (b_origem == 8){
for (i=1; i<ponto; i++){
if (num[i] < 48 || num[i] > 55){
verif_num = 0;
return verif_num;
}
}
for (i=ponto+1; i<num_digitos; i++){
if (num[i] < 48 || num[i] > 55){
verif_num = 0;
return verif_num;
}
}
}
else if (b_origem == 10){
for (i=1; i<ponto; i++){
if (num[i] < 48 || num[i] > 57){
verif_num = 0;
return verif_num;
}
}
for (i=ponto+1; i<num_digitos; i++){
if (num[i] < 48 || num[i] > 57){
verif_num = 0;
return verif_num;
}
}
}
else if (b_origem == 16){
for (i=1; i<ponto; i++){
if ((num[i] < 48 || num[i] > 57) && (num[i] < 'A' || num[i] > 'F')){
verif_num = 0;
return verif_num;
}
}
for (i=ponto+1; i<num_digitos; i++){
if ((num[i] < 48 || num[i] > 57) && (num[i] < 'A' || num[i] > 'F')){
verif_num = 0;
return verif_num;
}
}
}
return verif_num;
}

int verifica_origem(int b_origem){
int verif_origem = 1;
if (b_origem != 2 && b_origem != 8 && b_origem != 10 && b_origem != 16){
verif_origem = 0;
}
return verif_origem;
}

int verifica_destino(int b_destino){
int verif_destino = 1;
if (b_destino != 2 && b_destino != 8 && b_destino != 10 && b_destino != 16){
verif_destino = 0;
}
return verif_destino;
}

int recupera_inteiro(float n){
int recuperaInteiro(double n){
int num = (int)n;
return num;
}

float recupera_fracao(float n){
float num;
double recuperaFracao(double n){
double num;
num = n - (int)n;
return num;
}

int inteiro_para_baseX(unsigned long long int *inteira, int b_destino){
int inteiroParaBaseX(unsigned long long int *inteira, int b_destino){
int n;
unsigned long long int p;
n = *inteira % b_destino;
Expand All @@ -184,16 +77,16 @@ int inteiro_para_baseX(unsigned long long int *inteira, int b_destino){
return n;
}

int fracao_para_baseX(float *fracionaria, int b_destino){
int fracaoParaBaseX(double *fracionaria, int b_destino){
int n;
float p;
double p;
p = *fracionaria * b_destino;
n = recupera_inteiro(p);
*fracionaria = recupera_fracao(p);
n = recuperaInteiro(p);
*fracionaria = recuperaFracao(p);
return n;
}

unsigned long long int inteiro_para_base10(char num[], int b_origem, int ponto, int num_char[]){
unsigned long long int inteiroParaBase10(char num[], int b_origem, int ponto, int num_char[]){
int i, expoente = ponto -2; //desconsidera o PONTO e o SINAL.
unsigned long long int soma = 0;
for (i=1; i < ponto; i++){
Expand All @@ -203,9 +96,9 @@ unsigned long long int inteiro_para_base10(char num[], int b_origem, int ponto,
return soma;
}

float fracao_para_base10(char num[], int b_origem, int ponto, int digitos, int num_char[]){
double fracaoParaBase10(char num[], int b_origem, int ponto, int digitos, int num_char[]){
int i, expoente = -1;
float soma=0;
double soma=0;
for (i = ponto+1; i < digitos; i++){
soma += num_char[i] * pow(b_origem, expoente);
expoente --;
Expand Down

0 comments on commit 4873a09

Please sign in to comment.