只需使用bitwise和(&
)与掩码,没有理由循环:
a &= 0xFF000000; // Drops all but the third lowest byte a &= 0x000000FF; // Drops all but the lowest byte
(感谢@JSF的更正)
如@black所述,您可以使用C++ 14以来的数字分隔符,以使您的代码更具可读性:
a &= 0xFF'00'00'00; // Drops all but the third lowest byte a &= 0x00'00'00'FF; // Drops all but the lowest byte