c++でchar型のハミング重みとハミング距離を計算したいです。
ハミング重みとはビット列の中に含まれる1の数で、ハミング距離とは2つのビット列の異なるビットの数です。

例えば

a = 1010
b = 1111

ならば

ハミング重みはa=2,b=4です。
a,bのハミング距離は2です。

もし、これらは配列であれば簡単ですが、char型のまま求めることは可能でしょうか。また、もし直接できなければchar型を2進数の配列に変換することはできますでしょうか。