11 return ((*(
char*)&l));
17 return !IsLittleEndian();
32 void ByteSwap(
char* b,
int n){
33 for (
int i = 0; i < n/2; i++) {
34 std::swap(b[i], b[n-1-i]);
39 void ReadFromBigEndian(
char* ptr,
int nelem,
int bytesPerElem, std::istream &is){
40 is.read(ptr, nelem*bytesPerElem);
43 for(
int i= 0; i<nelem*bytesPerElem; i+=bytesPerElem){
44 ByteSwap(&ptr[i],bytesPerElem);
50 void WriteToBigEndian(
char* ptr,
int nelem,
int bytesPerElem, std::ostream &os){
52 os.write(ptr, nelem*bytesPerElem);
56 for(
int i= 0; i<nelem*bytesPerElem; i+=bytesPerElem){
57 ByteSwap(&ptr[i],bytesPerElem);
60 os.write(ptr, nelem*bytesPerElem);
63 for(
int i= 0; i<nelem*bytesPerElem; i+=bytesPerElem){
64 ByteSwap(&ptr[i],bytesPerElem);
70 void ReadFromLittleEndian(
char* ptr,
int nelem,
int bytesPerElem, std::istream &is){
71 is.read(ptr, nelem*bytesPerElem);
74 for(
int i= 0; i<nelem*bytesPerElem; i+=bytesPerElem){
75 ByteSwap(&ptr[i],bytesPerElem);
81 void WriteToLittleEndian(
char* ptr,
int nelem,
int bytesPerElem, std::ostream &os){
83 os.write(ptr, nelem*bytesPerElem);
87 for(
int i= 0; i<nelem*bytesPerElem; i+=bytesPerElem){
88 ByteSwap(&ptr[i],bytesPerElem);
91 os.write(ptr, nelem*bytesPerElem);
94 for(
int i= 0; i<nelem*bytesPerElem; i+=bytesPerElem){
95 ByteSwap(&ptr[i],bytesPerElem);