1.進数1のintを求めているの数
(1)1、{右正と負の数は、(1S補数の数負の計算である)されています
INT A; CIN >> A; INT COUNT = 0 ;
int型 N- = はsizeof(INT)* 8。 ; // ビット のための(INT I = 0、I <N - 、I ++ ){ IF(&A 。1!= 0 ){ //最下位ビットが1であるか否かを決定 ++ ; COUNT } A >> = 1 ; //右のいずれ }
COUT << ENDL << COUNT。
(2)2で割った権利の同等
利用可能な最低ビットモジュロ2を分析するステップと、利用可能な権利を2 [この方法は正の数、符号なしの数にのみ適しています]
int型; cinを >> ; int型のカウント= 0 ; 一方(> 0 ){ カウント + =(%2 )。 A / = 2 。 } coutの <<回数<<てendl;
[数よりも少なくすることができ、正、負、と(3)1
int型; cinを >> ; int型のカウント= 0 ; しばらく(!= 0 ){ ++ 数えます。&=(A- 1 )。 } coutの <<回数<<てendl;
2.必要な数0
(1)1、右
1と0の場合、カウントは1だけインクリメントされ、そして1は1、それがいると判定されます
(2)ビットマイナス1の総数