CHAR型に変換

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ares

CHAR型に変換

#1

投稿記事 by ares » 14年前

コード:

#include <stdio.h>
#include <limits.h>

int count_bits(unsigned  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  x)
{
	int	i;
	for(i = int_bits() - 1;i >= 0;i--)
		putchar(((x >> i) & 1U) ? '1' : '0');
}

int main(void)
{
	unsigned  i;
	
	for(i = 0;i < UINT_MAX;i++){
		print_bits(i);
		printf(" %6o %5u %4X\n", i, i, i);
	}
	return(0);
}
このプログラムをCHAR型で表現できる数値を10進、2進、8進、16進で表示するプログラムに書き換えたいのですが
unsignedをcharに変えるだけではできなくて困っています。アドバイスください。

アバター
bitter_fox
記事: 607
登録日時: 15年前
住所: 大阪府

Re: CHAR型に変換

#2

投稿記事 by bitter_fox » 14年前

ares さんが書きました:

コード:

	for(i = 0;i < UINT_MAX;i++){
		print_bits(i);
		printf(" %6o %5u %4X\n", i, i, i);
	}
このループはiが何よりも小さい間実行されるでしょうか?それが分かればおのずと答えはわかります。(ただ他にも問題があったりもしますが・・・)

non
記事: 1097
登録日時: 15年前

Re: CHAR型に変換

#3

投稿記事 by non » 14年前

>return(count_bits(~0U));

これもまずいかな。
non

閉鎖

“C言語何でも質問掲示板” へ戻る