Hi,
Sounds a lot like BASE64 encoding to me...
Anyway, here's one way of doing what you ask:
Code:
InValues VAR BYTE[4]
OutValues VAR BYTE[3]
' Max assignable value is 63
InValues[0] = 50
InValues[1] = 51
InValues[2] = 52
InValues[3] = 53
Main:
HSEROUT["Program start",13]
OutValues[0] = ((InValues[0] & %00111111) << 2) + ((InValues[1] & %00110000) >> 4)
OutValues[1] = ((InValues[1] & %00001111) << 4) + ((InValues[2] & %00111100) >> 2)
OutValues[2] = ((InValues[2] & %00000011) << 6) + ((InValues[3] & %00111111))
' Print input values, only the 6 least significant bits of each value
HSEROUT[BIN6 InValues[0], BIN6 InValues[1], BIN6 InValues[2], BIN6 InValues[3],13]
' Print output values, now encoded into 3 bytes.
HSEROUT[BIN8 OutValues[0],BIN8 OutValues[1], BIN8 OutValues[2],13]
Pause 100
END
It produsces the followin output
Code:
Program start
110010110011110100110101
110010110011110100110101
/Henrik.
Bookmarks