Yep that's the way this is done

by and-ing with 1 you get bit0, and-ing with 2 delviers bit 2, 4 for bit 3, 8 for bit 4 and so on.

About strings...

do a printf("%d", sizeof(STRING)) and then add 1 more byte for each single letter and when you're done add one byte more for the NULL termination of the string.

Then you'll know the exact size of your STRING.
I don't know if Acknex sends everything of a string or just the char array... you'll have to ask JCL about this.