- #include <iostream> 
- #include <fstream> 
- #include <stdio.h> 
- #include <string.h> 
- #include <cmath> 
- using namespace std; 
-   
- int main(void) 
- { 
-     char* input = "01001001001000000110110001101001011010110110010100100000011110010110111101110101"; 
- 	int length = strlen(input);     //get length of string 
-   
- 	int binary[8];    //array used to store 1 byte of binary number (1 character) 
- 	int asciiNum = 0;      //the ascii number after conversion from binary 
- 	char ascii;      //the ascii character itself 
-   
- 	cout << " "; 
-   
- 	int z = 0;   //counter used 
-   
- 	for(int x = 0; x < length / 8; x++)     //reading in bytes. total characters = length / 8 
- 	{ 
- 		for(int a = 0; a < 8; a++)      //store info into binary[0] through binary[7] 
- 		{ 
- 			binary[a] = (int) input[z] - 48;      //z never resets 
- 			z++; 
- 		} 
-   
- 		int power[8];    //will set powers of 2 in an array 
- 		int counter = 7;        //power starts at 2^0, ends at 2^7 
- 		for(int x = 0; x < 8; x++) 
- 		{ 
- 			power[x] = counter;      //power[] = {7, 6, 5, ..... 1, 0} 
- 			counter--;    //decrement counter each time 
- 		} 
-   
- 		for(int y = 0; y < 8; y++)    //will compute asciiNum 
- 		{ 
- 			double a = binary[y];    //store the element from binary[] as "a" 
- 			double b = power[y];    //store the lement from power[] as "b" 
-   
- 			asciiNum += a* pow(2, b);   //asciiNum = sum of a * 2^power where 0 <= power <= 7, power is int 
- 		} 
-   
- 		ascii = asciiNum;   //assign the asciiNum value to ascii, to change it into an actual character 
- 		asciiNum = 0;    //reset asciiNum for next loop 
-   
- 		cout << ascii;	//display the ascii character 
- 	} 
-   
-   
- 	return 0; 
- } 
-   
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPGNtYXRoPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4odm9pZCkKewogICAgY2hhciogaW5wdXQgPSAiMDEwMDEwMDEwMDEwMDAwMDAxMTAxMTAwMDExMDEwMDEwMTEwMTAxMTAxMTAwMTAxMDAxMDAwMDAwMTExMTAwMTAxMTAxMTExMDExMTAxMDEiOwoJaW50IGxlbmd0aCA9IHN0cmxlbihpbnB1dCk7ICAgICAvL2dldCBsZW5ndGggb2Ygc3RyaW5nCgkKCWludCBiaW5hcnlbOF07ICAgIC8vYXJyYXkgdXNlZCB0byBzdG9yZSAxIGJ5dGUgb2YgYmluYXJ5IG51bWJlciAoMSBjaGFyYWN0ZXIpCglpbnQgYXNjaWlOdW0gPSAwOyAgICAgIC8vdGhlIGFzY2lpIG51bWJlciBhZnRlciBjb252ZXJzaW9uIGZyb20gYmluYXJ5CgljaGFyIGFzY2lpOyAgICAgIC8vdGhlIGFzY2lpIGNoYXJhY3RlciBpdHNlbGYKCQoJY291dCA8PCAiICI7CgkKCWludCB6ID0gMDsgICAvL2NvdW50ZXIgdXNlZAoJCglmb3IoaW50IHggPSAwOyB4IDwgbGVuZ3RoIC8gODsgeCsrKSAgICAgLy9yZWFkaW5nIGluIGJ5dGVzLiB0b3RhbCBjaGFyYWN0ZXJzID0gbGVuZ3RoIC8gOAoJewoJCWZvcihpbnQgYSA9IDA7IGEgPCA4OyBhKyspICAgICAgLy9zdG9yZSBpbmZvIGludG8gYmluYXJ5WzBdIHRocm91Z2ggYmluYXJ5WzddCgkJewoJCQliaW5hcnlbYV0gPSAoaW50KSBpbnB1dFt6XSAtIDQ4OyAgICAgIC8veiBuZXZlciByZXNldHMKCQkJeisrOwoJCX0KCQkKCQlpbnQgcG93ZXJbOF07ICAgIC8vd2lsbCBzZXQgcG93ZXJzIG9mIDIgaW4gYW4gYXJyYXkKCQlpbnQgY291bnRlciA9IDc7ICAgICAgICAvL3Bvd2VyIHN0YXJ0cyBhdCAyXjAsIGVuZHMgYXQgMl43CgkJZm9yKGludCB4ID0gMDsgeCA8IDg7IHgrKykKCQl7CgkJCXBvd2VyW3hdID0gY291bnRlcjsgICAgICAvL3Bvd2VyW10gPSB7NywgNiwgNSwgLi4uLi4gMSwgMH0KCQkJY291bnRlci0tOyAgICAvL2RlY3JlbWVudCBjb3VudGVyIGVhY2ggdGltZQoJCX0KCQkKCQlmb3IoaW50IHkgPSAwOyB5IDwgODsgeSsrKSAgICAvL3dpbGwgY29tcHV0ZSBhc2NpaU51bQoJCXsKCQkJZG91YmxlIGEgPSBiaW5hcnlbeV07ICAgIC8vc3RvcmUgdGhlIGVsZW1lbnQgZnJvbSBiaW5hcnlbXSBhcyAiYSIKCQkJZG91YmxlIGIgPSBwb3dlclt5XTsgICAgLy9zdG9yZSB0aGUgbGVtZW50IGZyb20gcG93ZXJbXSBhcyAiYiIKCQkJCgkJCWFzY2lpTnVtICs9IGEqIHBvdygyLCBiKTsgICAvL2FzY2lpTnVtID0gc3VtIG9mIGEgKiAyXnBvd2VyIHdoZXJlIDAgPD0gcG93ZXIgPD0gNywgcG93ZXIgaXMgaW50CgkJfQoJCQoJCWFzY2lpID0gYXNjaWlOdW07ICAgLy9hc3NpZ24gdGhlIGFzY2lpTnVtIHZhbHVlIHRvIGFzY2lpLCB0byBjaGFuZ2UgaXQgaW50byBhbiBhY3R1YWwgY2hhcmFjdGVyCgkJYXNjaWlOdW0gPSAwOyAgICAvL3Jlc2V0IGFzY2lpTnVtIGZvciBuZXh0IGxvb3AKCQkKCQljb3V0IDw8IGFzY2lpOwkvL2Rpc3BsYXkgdGhlIGFzY2lpIGNoYXJhY3RlcgoJfQoKCQoJcmV0dXJuIDA7Cn0K