Can anyone help?

Does anyone know of a simple peice of code in c/c++ that will allow me to convert ASCII characters into their relevent binary code and back again?

Cheers.

Recommended Answers

All 3 Replies

Can anyone help?

Does anyone know of a simple peice of code in c/c++ that will allow me to convert ASCII characters into their relevent binary code and back again?

Cheers.

well if you know how to get the binary equvilent for a number, take the ascii char and assign it to an int to get an interget value then convert that to binary, or use the atoi() method and convert the result from that.

to do the reverse, if you used the assigning tactic, take the binary, and get the char equvilent by assigning the interger value to the char. if you used the atoi method, just take the binary convert it to an int, and use the itoa mehtod

check out this site:
http://nickciske.com/tools/binary.php

To continue where BountyX left off, to convert from integer to binary, use what I call the "calculating change" method - because it reminds me of one of the first C++ programs I learned was given 200 cents, calculate the equivalent in the smallest number of coins.

i.e. is number larger than 128, if yes, then a 1 ... is what is left larger than 64, if no, then a 0 ... is what is left larger than 32 ... and, well, you get the idea ;)

use the & and << operators. remember that a character is just a sequence of bits. u cant test for each bit and output the result.

int main()
 {
 	char	x = 'a';
 	int y;
 
 	//  the value of 'a' in hex is 0x61, or 97 decimal
 	//  in binary, that would be:  0 1 1 0 0 0 0 1
 	//  or 64 + 32 + 1, or 2^7 + 2^6 + 2^0
 	//
 	//loop for number of bits in a character
 	//this will print out bits in reverse order
 	//least significant bit first
 	for(y = 0; y < sizeof(char) * 8; y++)   
 		printf("%c ", ( x & (1 << y) ) ? '1' : '0' );
 
 	puts("");
 	return 0;
 }
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.