下面的copy_bit
功能可以简化为类似的东西out[out_bit] = in[in_bit]
吗?(即不使用if
语句)
template< typename T >
inline void copy_bit( T& out, const T in, const std::size_t out_bit, const std::size_t in_bit )
{
if ( (in & (1 << in_bit)) != 0 )
{
out |= (1 << out_bit); // Set bit
}
else
{
out &= ~(1 << out_bit); // Clear bit
}
}
// Set bit 4 in x to bit 11 in y
copy_bit( x, y, 4, 11 );
更新:为了清楚起见,这不是家庭作业或建议std::bitset
回答问题的 XY 问题。