大小端模式的判断代码

/**  
 * @brief 判断计算机存储系统是小端还是大端  
 *  
 * @return 如果最低有效字节存储在最低地址,则返回true;否则返回false。  
 */  
bool judgeLittleEndian() {  
    int val = 262657; // 00000000 00000010 00000100 00000001  
    char* p = (char*)(&val);  
    std::bitset<8> flag{ "00000001" };  
  
    // 使用位运算进行比较,以提高性能  
    if (*p == flag.to_ulong()) {  
        // 最低的八位存储在字节的最低地址(小端存储)  
        return true;  
    } else {  
        // 最高或次低的八位存储在字节的最低地址(大端存储)  
        return false;  
    }  
}

C++20中关于大小端判断的代码

//#include	
if (std::endian::native() == std::endian::little) {
		std::cout << "little endian" << std::endl;
	}
	else if(std::endian::native() == std::endian::big){
		std::cout << "little endian" << std::endl;
	}

你可能感兴趣的:(C++,算法)