https://mixrolikus.cc/video/1JfdvPk-iHg/number-of-1-bits-leetcode-191-bit-manipulation-python