UNKNOWN //************************************** // Name: Begginer Bin->Dec && Dec->Bin Convertor // Description:trying to improve algorithms development. // By: Victor Chavauty // // // Inputs:None // // Returns:None // //Assumes:None // //Side Effects:None //This code is copyrighted and has limited warranties. //Please see http://www.Planet-Source-Code.com/xq/ASP/txtCodeId.13848/lngWId.3/qx/vb/scripts/ShowCode.htm //for details. //************************************** #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> #define INITIAL_VALUE 0 void binary_to_decimal(int bin, int size); void decimal_to_binary(int dec); int main() { int binary; int decimal; int size_of_binary_number; char get; while(get != 'e' || get != 'E') { printf("-------------------------------------------------------\n"); printf("-------------------------------------------------------\n"); printf("-------------------------SELECT -----------------------\n"); printf("---------------------A FOR BIN->DEC -------------------\n"); printf("---------------------D FOR DEC->BIN -------------------\n"); printf("---------------------E TO EXIT -------------------\n"); printf("-------------------------------------------------------\n"); printf("-------------------------------------------------------\n"); printf("\n\n>>"); get = getch(); if(get == 'A' || get == 'a') { printf("\n\nPlease Write your Binary Number Here\n:"); scanf("%d", &binary); size_of_binary_number = ceil(log10(binary)); system("cls"); binary_to_decimal(binary, size_of_binary_number); } else if(get == 'D' || get == 'd') { printf("\n\nPlease Write your Decimal Number Here\n:"); scanf("%d", &decimal); system("cls"); decimal_to_binary(decimal); } else if(get == 'E' || get == 'e') { exit(0); } else { system("cls"); } } return 0; } void binary_to_decimal(int bin, int size) { int valor_binario = bin; int valor_decimal[size]; int c, enumerado = INITIAL_VALUE; int elev; int decimal = INITIAL_VALUE; for(c = 0;c <= size ;c++) { valor_decimal[enumerado] = valor_binario % 10; valor_binario = valor_binario / 10; enumerado++; } enumerado = INITIAL_VALUE; for(c = 0; c <= size;c++) { if(valor_decimal[enumerado] == 1) { elev = pow(2, c); decimal = decimal + elev; } enumerado++; } printf("Decimal Value: >> %d\n\n\n\n", decimal); } void decimal_to_binary(int dec) { int numero = dec; /* \ */ int check; int valor = INITIAL_VALUE; int a, c = INITIAL_VALUE; int ab; int valor_binario[320]; do { valor = pow(2, c); c++; }while(valor <= numero); c = c - 2; for(a = c;a >= 0; a--) { check = pow(2, a); if(check <= numero) { numero = numero - check; valor_binario[a - 1] = 1; } else { valor_binario[a - 1] = 0; } } printf("Decimal Value: >> "); for(ab = c; ab >= 0;ab--) { printf("%d", valor_binario[ab - 1]); } printf("\n\n\n\n"); }