7-47バイナリの先頭のゼロ(10点)
1167 ワード
コンピュータ内部ではすべての値をバイナリで表現します.18のような10進数は、32ビットのコンピュータ内では1億億億円、1千万円と表現されています.左側から数えてみると、1番目の1の前に27個の0があります.これらの0を先頭のゼロと呼びます.
今、あなたの任務はプログラムを書いて、整数を入力して、32ビットの表現の下でその先頭のゼロの個数を出力します.
入力形式:
32ビットの整数が表現できる範囲内の整数です.
出力フォーマット:
入力が32ビットのバイナリ数として表されるときの、最初の1より前の0の数を表す整数.
サンプルを入力:
出力サンプル:
今、あなたの任務はプログラムを書いて、整数を入力して、32ビットの表現の下でその先頭のゼロの個数を出力します.
入力形式:
32ビットの整数が表現できる範囲内の整数です.
出力フォーマット:
入力が32ビットのバイナリ数として表されるときの、最初の1より前の0の数を表す整数.
サンプルを入力:
256
出力サンプル:
23
#include
int main(void)
{
int n;
int i = 0;
int a[32] = {};
scanf("%d",&n);
if(n == 0){
printf("32");// 0
}
if(n < 0){
printf("0");//
}
while(n>0){
a[i] = n%2;
n /= 2;
i ++;
}
for(i=0; i<32; i++){
if(a[i]==1){
printf("%d",31-i);
break; }
}
return 0;
}