Skip to main content
GameDev.net gamedev.net
🔒 Locked

binary string to decimal

Started by phil67rpg Oct 30, 2011 at 11:22 PM 4 replies 1.2k views
Original Post
phil67rpg
phil67rpg
I am attempting to convert a string binary to a decimal value.
[font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]#include[/font][/font][/font][font="Consolas"][font="Consolas"] [/font][/font][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"]

[/font][/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]#include[/font][/font][/font][font="Consolas"][font="Consolas"] [/font][/font][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"]

[/font][/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]#include[/font][/font][/font][font="Consolas"][font="Consolas"] [/font][/font][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"]

[/font][/font][/font][font="Consolas"][font="Consolas"][/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]using[/font][/font][/font][font="Consolas"][font="Consolas"] [/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]namespace[/font][/font][/font][font="Consolas"][font="Consolas"] std;

[/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][font="Consolas"] main()

{

[/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][font="Consolas"] test,dec=0;

string bin;

cout << [/font][/font][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"]"Enter a binary string: "[/font][/font][/font][font="Consolas"][font="Consolas"];

cin >> bin;

[/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]for[/font][/font][/font][font="Consolas"][font="Consolas"]([/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][font="Consolas"] i=0; i
{

cout << bin;

}



[/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]for[/font][/font][/font][font="Consolas"][font="Consolas"]([/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]int[/font][/font][/font][font="Consolas"][font="Consolas"] j=0;j
{

dec += bin[j]*2^j;

}

cout << [/font][/font][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"]" = "[/font][/font][/font][font="Consolas"][font="Consolas"] << dec << [/font][/font][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"][font="Consolas"][color="#a31515"]" in decimal"[/font][/font][/font][font="Consolas"][font="Consolas"];

cout << endl;

cin >> test;



[/font][/font][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"][font="Consolas"][color="#0000ff"]return[/font][/font][/font][font="Consolas"][font="Consolas"] 0;

}

thanks for your help in advance.

[/font][/font]
Cornstalks
Cornstalks
[font="Consolas"][font="Consolas"]
thanks for your help in advance.[/font][/font]

Help with what? You just said "I am attempting to convert a string binary to a decimal value" but never said anything was wrong or what you needed help with or what your question is.
phil67rpg
phil67rpg
well I think there is a problem with this line of code.
[font="Consolas"]
[font="Consolas"][/font]dec += bin[j]*2^j;[/font]
rip-off
rip-off
The ^ operator is not a power operator, like maths. It is the bitwise exclusive OR operator.

The value of a numberic character is not the same as the number it represents. That is, '0' != 0, '1' != 1 and so forth. In fact, the character with a value of 0 is quite special, it is used as the terminator for C strings and string literals.

A common technique to convert characters to numerics is to take advantage that in most common character encodings the numbers are contiguous and ascending. Thus, one can write:

int toNumber(char c)
{
if(c < '0' || c > '9')
{
// Errors are represented as negative result
return -1;
}
return c - '0';
}
AverageMidget
AverageMidget
I am attempting to convert a string binary to a decimal value.
[font="Consolas"][font="Consolas"][color="#0000ff"]...[/font][/font]
[font="Consolas"][font="Consolas"]thanks for your help in advance.[/font][/font]


Help with what? I don't see a question. I'm pretty sure I know what you're asking, but still, no question.

Did you try searching for this? It's not exactly a hard to find answer. Google returns 10,500,000 results for binary string to decimal

http://www.cplusplus.../general/13492/


Sixth post down.

EDIT:
Ninja'd by several people!
dpadam450
dpadam450
You have to take into account that your math is correct, and that of course that ^ symbol as stated is not the one you want but also:

00000010
^ = 2^8*0 ( bin[0] not bin[8] though as you have it). because you have 2^j*0 where j = 0, the first character in the string.
NBA2K, Madden, Maneater, Killing Floor, Sims 

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.