version 1.2, 2015/04/20 18:10:09
|
version 1.3, 2015/04/20 18:19:49
|
|
|
| |
i1 |= (b1 & 0xFC) >> 2; | i1 |= (b1 & 0xFC) >> 2; |
i2 |= (b1 & 0x03) << 4; | i2 |= (b1 & 0x03) << 4; |
buf[n++] = Enc6Bits(i1); |
buf[n++] = Enc6Bits((unsigned char) i1); |
} | } |
| |
/* Process byte 2 */ | /* Process byte 2 */ |
|
|
| |
i2 |= (b2 & 0xF0) >> 4; | i2 |= (b2 & 0xF0) >> 4; |
i3 |= (b2 & 0x0F) << 2; | i3 |= (b2 & 0x0F) << 2; |
buf[n++] = Enc6Bits(i2); |
buf[n++] = Enc6Bits((unsigned char)i2); |
} | } |
else | else |
{ | { |
buf[n++] = Enc6Bits(i2); |
buf[n++] = Enc6Bits((unsigned char)i2); |
done = 1; | done = 1; |
} | } |
| |
|
|
i3 |= (b3 & 0xCF) >> 6; | i3 |= (b3 & 0xCF) >> 6; |
i4 |= b3 & 0x3F; | i4 |= b3 & 0x3F; |
| |
buf[n++] = Enc6Bits(i3); |
buf[n++] = Enc6Bits((unsigned char)i3); |
buf[n++] = Enc6Bits(i4); |
buf[n++] = Enc6Bits((unsigned char)i4); |
} | } |
else if (!done) | else if (!done) |
{ | { |
buf[n++] = Enc6Bits(i3); |
buf[n++] = Enc6Bits((unsigned char)i3); |
} | } |
| |
/* Add padding */ | /* Add padding */ |
|
|
return -1; | return -1; |
} | } |
| |
return 0; |
// return the size of the decoded buffer |
|
return n; |
} | } |