for ( int i = 0 ; i < encodedmessage.size ( ) ; )
{
if ( i + 7 < encodedmessage.size ( ) )
{
string temp = encodedmessage.substr ( i, 8 ) ;
bitset< 8 > bits( temp) ;
unsigned char c = bits.to_ulong ( ) ;
charmessage + = c;
i + = 8 ;
}
else if ( i< encodedmessage.size ( ) )
{
int ba2y = encodedmessage.size ( ) - i;
string temp = "" ;
int cur = 8 - ba2y;
for ( int j = 0 ; j < cur; ++ j) temp + = "0" ;
bitset< 8 > bits( temp+ encodedmessage.substr ( i,encodedmessage.size ( ) - i+ 1 ) ) ;
unsigned char c = bits.to_ulong ( ) ;
charmessage + = c;
break ;
}
}
CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBlbmNvZGVkbWVzc2FnZS5zaXplKCk7ICkKCQl7CgkJCQoJCQlpZiAoaSArIDcgPCBlbmNvZGVkbWVzc2FnZS5zaXplKCkpCgkJCXsKCQkJCQoJCgkJCQlzdHJpbmcgdGVtcCA9IGVuY29kZWRtZXNzYWdlLnN1YnN0cihpLCA4KTsKCQkJCWJpdHNldDw4PmJpdHModGVtcCk7CgkJCQl1bnNpZ25lZCBjaGFyIGMgPSBiaXRzLnRvX3Vsb25nKCk7CgkJCQljaGFybWVzc2FnZSArPSBjOwoJCQkJaSArPSA4OwoJCQl9CgkJCWVsc2UgaWYoaTxlbmNvZGVkbWVzc2FnZS5zaXplKCkpCgkJCXsKCQkJCWludCBiYTJ5ID0gZW5jb2RlZG1lc3NhZ2Uuc2l6ZSgpIC0gaTsKCQkJCXN0cmluZyB0ZW1wID0gIiI7CgkJCQlpbnQgY3VyID0gOCAtIGJhMnk7CgkJCQlmb3IgKGludCBqID0gMDsgaiA8IGN1cjsgKytqKXRlbXAgKz0gIjAiOwoJCQkJYml0c2V0PDg+Yml0cyh0ZW1wK2VuY29kZWRtZXNzYWdlLnN1YnN0cihpLGVuY29kZWRtZXNzYWdlLnNpemUoKS1pKzEpKTsKCQkJCXVuc2lnbmVkIGNoYXIgYyA9IGJpdHMudG9fdWxvbmcoKTsKCQkJCWNoYXJtZXNzYWdlICs9IGM7CgkJCQlicmVhazsKCQkJfQoJCQkKCQl9