Oops, 'y' can't be both signed network long and signed little-endian long. How about this: S unsigned native short s signed native short n unsigned network short o ? signed network short v unsigned little-endian short r ? signed little-endian short I unsigned native int i signed native int J ? unsigned network int j ? signed network int K ? unsigned little-endian int k ? signed little-endian int L unsigned native long l signed native long N unsigned network long O ? signed network long V unsigned little-endian long R ? signed little-endian long