fread(&(p->data), 8, 1, file)で16進の値「AAAAAAAA」をとりこんで
test = (p->data);とtestに値を代入した時に

Answer = 0xAAAAA << 2;のような
シフト演算や足し算をtestに大してすることはできないのでしょうか?