質問: comData[0] data[0] << 2 | data[1] >> 4;これは一体なんですか?
回答: ビットフィールドと書いてあるんだから、 そこを調べましょう。 #include typedef struct { int w : 6; int x : 6; int y : 6; int z : 6; } WXYZ; int main() { int i; WXYZ dat = {63,63,63,63}; printf("%x\n\n",dat); for(i = 0; i < 4; i++) printf("%x\n",((unsigned char *)&dat)[i]); return 0; } int の一つの中に、6bit * 4 分のデータが 3byte分、詰め込まれているのがわかりますが? 最初のは、それをひとつづつビットシフトでやろうとしています。