C言語なら、俺に聞け! <31>
■ このスレッドは過去ログ倉庫に格納されています
0732デフォルトの名無しさん
NGNGint count_bits(unsigned int x){
int count = 0;
while (x){
if (x & 1U) count++;
x>>=1;
}
return (count);
}
int int_bits(void){
return (count_bits(~0U));
}
void print_bits(unsigned int x){
int i;
for (i=int_bits() - 1;i >= 0; i--)
putchar(((x>>i) & 1U) ? '1' : '0');
}
int main (void){
unsigned int nx;
printf("非負の整数を入力してください:");
scanf("%u",&nx);
print_bits(nx);
putchar('\n');
return 0;}
// --------------------------------
上記のプログラムでunsigned なら動くのですが
unsigned int を全て int に変えると動きません。
エラーメッセージも出ないので無限ループか何かに入ってるようです
なぜだかわかりますか?
■ このスレッドは過去ログ倉庫に格納されています