The program I posted in my previous post could only convert whole decimal numbers into binary. Meaning it could not convert decimal numbers like 2.34 into its binary equivalent. This is the updated version of that program, and this one is capable of converting any decimal number into its binary equivalent.
Pleas read the post : Decimal to binary conversion , if you are new to this concept.
// Program to convert decimal to binary ( version 2.0 )
#include <iostream>
void convert_integer(int arr[],int x) // function to convert the integer part to binary
{
int i=0;
while ( x != 0 ) // until x is fully divided, leaving only 1
{
arr[i] = x%2; // store the remainder in the array
x = x/2;
i++;
}
/*since arrays are passed by refernce, hence any changes in the parameter array will
result in change in the array passed as the argument */
} // end of function
void convert_float(int arr[],double x) // function to convert the floating part into binary
{
int i=0;
do
{
x = x * 2;
if ( x > 1 )
{
arr[i] = (int)x;
x = x - (int)x;
}
else
arr[i] = (int)x;
i++;
}while ( x != 1 && i != 8);
}// end of function
int main()
{
double value;
int arr1[8] = {0,0,0,0,0,0,0,0}; // for integral part
int arr2[8] = {0,0,0,0,0,0,0,0}; // for floating part
std::cout<<" Enter a number to convert : ";
std::cin>>value;
convert_integer(arr1,(int)value);
double temp = value - (int)value;
convert_float(arr2,temp);
std::cout<<" \n The binary output (8-bit ) is : ";
for (int i=7; i>=0; i--) // displays the LHS of the binary number
std::cout<<arr1[i]<<" ";
std::cout<<" . "; // adds the decimal(point) between the numbers
for (int i=0; i<8; i++) // displays the RHS of the binary number
std::cout<<arr2[i]<<" ";
return 0;
} // end of main
Pleas read the post : Decimal to binary conversion , if you are new to this concept.
// Program to convert decimal to binary ( version 2.0 )
#include <iostream>
void convert_integer(int arr[],int x) // function to convert the integer part to binary
{
int i=0;
while ( x != 0 ) // until x is fully divided, leaving only 1
{
arr[i] = x%2; // store the remainder in the array
x = x/2;
i++;
}
/*since arrays are passed by refernce, hence any changes in the parameter array will
result in change in the array passed as the argument */
} // end of function
void convert_float(int arr[],double x) // function to convert the floating part into binary
{
int i=0;
do
{
x = x * 2;
if ( x > 1 )
{
arr[i] = (int)x;
x = x - (int)x;
}
else
arr[i] = (int)x;
i++;
}while ( x != 1 && i != 8);
}// end of function
int main()
{
double value;
int arr1[8] = {0,0,0,0,0,0,0,0}; // for integral part
int arr2[8] = {0,0,0,0,0,0,0,0}; // for floating part
std::cout<<" Enter a number to convert : ";
std::cin>>value;
convert_integer(arr1,(int)value);
double temp = value - (int)value;
convert_float(arr2,temp);
std::cout<<" \n The binary output (8-bit ) is : ";
for (int i=7; i>=0; i--) // displays the LHS of the binary number
std::cout<<arr1[i]<<" ";
std::cout<<" . "; // adds the decimal(point) between the numbers
for (int i=0; i<8; i++) // displays the RHS of the binary number
std::cout<<arr2[i]<<" ";
return 0;
} // end of main
------ OUTPUT ------
Please do comment if you don't understand any part or want to know more or just want to say thanks. I love programming and love to teach my friends. Your suggestions and appreciation will make this blog much better.
------ Related Posts ------
1 : Decimal to binary conversion (v1.0) : http://programsplusplus.blogspot.in/2012/04/my-apologies-to-my-readers-for-posting.html
2 : Binary to decimal conversion : http://programsplusplus.blogspot.in/2012/04/binary-to-decimal-conversion-in-c.html
2 : Binary to decimal conversion : http://programsplusplus.blogspot.in/2012/04/binary-to-decimal-conversion-in-c.html
Thanks for this very helpful blog! :) This will be very helpful for me and my groupmates. ♥
ReplyDelete