リトルエンディアンって上位バイトと下位バイトの格納方式でしょ?
typedef struct{
short b;
short a;
}test_str;
で>403の望む結果にならない?