![Quote](images/metro/blue/misc/quote_icon.png)
Originally Posted by
clark
Dia pa kuy problema, binary to decimal ni turboc gihapun...kung mo sobra ug 5 digits ang no na i input, lahi ang mo gawas...example type in ka ug 1100100(equivalent ni sa 100 in decmal) ang output kay -52...nganu mani
#include <stdio.h>
#include <math.h>
main() {
int dec=0,flag=0;
int bin, bit;
double exp=0;
clrscr();
printf("Enter a binary number : ");
scanf("%d", &bin);
while(bin) {
bit=bin%10;
if (bit !=0 && bit !=1) {
flag=1;
}
bin=bin/10;
dec=dec+bit*pow(2, exp);
exp++;
}
printf("\nNumber in decimal : %d\n", dec);
getch();
}
ang problema kay ang number nga
1100100 (decimal) di na masigo sa
int nga data type (
bin variable), try using
long sa imong ints. pwede pud check nimo ang
limits.h kay naa dira ang predefined limits sa compiler nga gigamit,
INT_MAX,
LONG_MAX, etc.
Code:
#include <stdio.h>
#include <math.h>
int main(void)
{
long dec = 0;
long flag = 0;
long bin = 0;
long bit = 0;
double exp = 0;
printf("Enter a binary number : ");
scanf("%ld", &bin);
while(bin)
{
bit = bin % 10;
if (bit != 0 && bit != 1)
{
flag = 1;
}
bin = bin / 10;
dec = dec + bit * pow(2, exp);
exp++;
}
printf("Number in decimal : %ld\n", dec);
return 0;
}