ZHCAAO5A June 2020 – August 2021 ADS112C04 , ADS112U04 , ADS114S06 , ADS114S08 , ADS122C04 , ADS122U04 , ADS1235 , ADS1235-Q1 , ADS124S06 , ADS124S08 , ADS1259 , ADS1259-Q1 , ADS125H01 , ADS125H02 , ADS1260 , ADS1260-Q1 , ADS1261 , ADS1262 , ADS1263 , ADS127L01 , ADS131A02 , ADS131A04 , ADS131M04 , ADS131M06 , ADS131M08
一种计算数据中置 1 的位的数量的方法是以一次评估一个位的方式来评估每个位。以下方法需要对数据进行 32 遍评估,以评估 32 个位中的每一个位。
/**
* 计算 32 位值中置 1 的位的数量。
*
* \详细信息:通过使用循环,评估每个最低有效位,
* 然后将剩余值右移 1 位,来计算置 1 的位的数量。
*
* \参数 uint32_t in 是要计算的值。
*
* \返回计算得到的 uint32_t numBits。
*/
uint32_t countBits (uint32_t in)
{
uint32_t numBits = 0;
while (in != 0)
{
if (in & 0x01) numBits++;
in >>= 1;
}
return numBits;
}