2d array not populated correctly when using bitshift

Why do you bother playing with 32 bits and but shift, just create an array of struct, the struct holding whatever records you want to keep