mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-04-08 21:19:52 +08:00
fixed CPPLINT + added method 2
This commit is contained in:
@@ -1,25 +1,55 @@
|
||||
// This function convert decimal to binary number
|
||||
//
|
||||
/**
|
||||
* @file
|
||||
* @brief Function to convert decimal number to binary representation
|
||||
*/
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
int number;
|
||||
cout << "Enter a number:";
|
||||
cin >> number;
|
||||
int remainder, binary = 0, var = 1;
|
||||
/**
|
||||
* This method converts the bit representation and stores it as a decimal
|
||||
* number.
|
||||
*/
|
||||
void method1(int number) {
|
||||
int remainder, binary = 0, var = 1;
|
||||
|
||||
do
|
||||
{
|
||||
remainder = number % 2;
|
||||
number = number / 2;
|
||||
binary = binary + (remainder * var);
|
||||
var = var * 10;
|
||||
|
||||
} while (number > 0);
|
||||
cout << "the binary is :";
|
||||
cout << binary;
|
||||
cout << endl;
|
||||
return 0;
|
||||
do {
|
||||
remainder = number % 2;
|
||||
number = number / 2;
|
||||
binary = binary + (remainder * var);
|
||||
var = var * 10;
|
||||
} while (number > 0);
|
||||
std::cout << "Method 1 : " << binary << std::endl;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method stores each bit value from LSB to MSB and then prints them back
|
||||
* from MSB to LSB
|
||||
*/
|
||||
void method2(int number) {
|
||||
int num_bits = 0;
|
||||
char bit_string[50];
|
||||
|
||||
do {
|
||||
bool bit = number & 0x01; // get last bit
|
||||
if (bit)
|
||||
bit_string[num_bits++] = '1';
|
||||
else
|
||||
bit_string[num_bits++] = '0';
|
||||
number >>= 1; // right shift bit 1 bit
|
||||
} while (number > 0);
|
||||
|
||||
std::cout << "Method 2 : ";
|
||||
while (num_bits >= 0)
|
||||
std::cout << bit_string[num_bits--]; // print from MSB to LSB
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int number;
|
||||
std::cout << "Enter a number:";
|
||||
std::cin >> number;
|
||||
|
||||
method1(number);
|
||||
method2(number);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user