Write a C++ program that reads as a variable an integer containing only 0s and 1s (i.e., a binary integer) and returns its decimal equivalent.
Hint:
Use the remainder and division operators to pick off the binary number’s digits one at a time, from right to left. In the decimal number system, the rightmost digit has a positional value of 1 and the next digit to the left has a positional value of 10, then 100, then 1000, and so on.
The decimal number 234 can be interpreted as 4 * 1 + 3 * 10 + 2 * 100. In the binary number system, the rightmost digit has a positional value of 1, the next digit to the left has a positional valueof2,then4,then8,andsoon.Thedecimalequivalentofbinary1101is1*20 +0*21 +1 * 22 + 1 * 23, or 1 + 0 + 4 + 8 or, 13.
1
Expert's answer
2014-03-24T11:15:26-0400
#include <iostream>
using namespace std;
int main () { long result = 0; // variable of result int input; // input int 10...1 cin >> input; // reading input int long power = 1; // power of 2 (1, 2, 4, ...) while (input > 0) { // looking on input int result += (input % 10) * power; // using remainder operator for taking last digit and multiplying it on power of 2 input = (int) input / 10; // using division operator for deleting last digit power *= 2; // increasing power of 2 } cout << result; // output of result return 0; }
Numbers and figures are an essential part of our world, necessary for almost everything we do every day. As important…
APPROVED BY CLIENTS
"assignmentexpert.com" is professional group of people in Math subjects! They did assignments in very high level of mathematical modelling in the best quality. Thanks a lot
Comments
Leave a comment