Учитывая, что формат всегда примерно такой, этот код должен работать:
NSString *
BinaryToAsciiString (NSString *string)
{
NSMutableString *result = [NSMutableString string];
const char *b_str = [string cStringUsingEncoding:NSASCIIStringEncoding];
char c;
int i = 0; /* index, used for iterating on the string */
int p = 7; /* power index, iterating over a byte, 2^p */
int d = 0; /* the result character */
while ((c = b_str[i])) { /* get a char */
if (c == ' ') { /* if it's a space, save the char + reset indexes */
[result appendFormat:@"%c", d];
p = 7; d = 0;
} else { /* else add its value to d and decrement
* p for the next iteration */
if (c == '1') d += pow(2, p);
--p;
}
++i;
} [result appendFormat:@"%c", d]; /* this saves the last byte */
return [NSString stringWithString:result];
}
Скажите, была ли какая-то его часть неясной.