Anonymous
public text v1 · immutableint bit_to_ascii(const char core[], char data[])
{
int i, byte[7],n = 0, code = 0, bit = 7, skip = 0, repeat = 0, repeat_num;
char rep[3];
for(i = 0; i < (strlen(core) - 1); i++)
{
if(core[i] == 'S' && core[i+1] == 'K' && core[i+2] == 'P')
{
while(skip < 8)
{
if(core[i] == '1' || core[i] == '0')
skip++;
i++;
}
skip = 0;
}
else if(core[i] == 'R' && core[i+1] == 'P' && core[i+2] == 'T')
{
int z, y = 0;
z = i + 3;
while(is_int(core[z]) == 1)
{
rep[y] = core[z];
rep[y + 1] = '\0';
z++;
y++;
}
repeat_num = atoi(rep) - 1;
for(repeat = 0; repeat < repeat_num; repeat++)
{
data[n] = data[n - 1];
n++;
}
code = 0;
repeat = 0;
bit = 7;
i = i + 6;
}
if(core[i] == '1' || core[i] == '0')
{
if(core[i] == '1')
{
code = code + exponent(2, (bit));
}
bit--;
if(core[i+1] == 'R' && core[i+2] == 'P' && core[i+3] == 'T')
{
bit = -1;
}
if(bit == -1)
{
if(/*code == 0 || */(code > 31 && code < 127))
{
data[n] = code;
n++;
code = 0;
}
else if(code > 0 && code <= 31)
{
code = 0;
}
bit = 7;
}
}
}
if(bit != -1)
{
data[n] = code;
n++;
bit = 7;
}
return n;
}