2進カウントアップ

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

2進カウントアップ

#1

投稿記事 by admin » 15年前

実行結果が2進カウントアップ動作するプログラムを作りたいんですが、考えてもどうしてもわからないです・・
明後日のテストに似た問題を出すと言っていたのですが、先生に聞いても教えてくれませんでした。
繰り返し文(for文)あたりまで習っているのですが、難しくてわからないです↓↓
丸投げみたいになってすいませんが、教えてもらえないですか??

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 2進カウントアップ

#2

投稿記事 by softya(ソフト屋) » 15年前

分からないことが多いので、次のことに答えてもらえますか?

・使用言語はC言語ですか?
・表示というか出力はprintfですか?
・何桁の2進数ですか?
・使って良い標準関数や文法はありますか? 配列ok ポインタngなど。
・10進のカウントアップを作って、ここに貼ってください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

admin

Re: 2進カウントアップ

#3

投稿記事 by admin » 15年前

もちろんC言語です。
出力はprintfで大丈夫です。
8桁の2進数です。
何を使ってもいいと思います。
カウントアップの作り方はわかんないです。
for文まで習っていたら作れるレベルなんでしょうか?

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

Re: 2進カウントアップ

#4

投稿記事 by non » 15年前

意味がわからないけど、こんなものを言っているのかな?
8ビットではないけど。

コード:

#include <stdio.h>
int count_bits(unsigned x)
{
	int count=0;
	while(x!=0){
		if((x & 1U) == 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) == 1U) ? '1':'0');
	}
	putchar('\n');
}
int main(void)
{
	unsigned nx=0;
	while(1)
		print_bits(nx++); 
	return (0);
}
non

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 2進カウントアップ

#5

投稿記事 by softya(ソフト屋) » 15年前

>for文まで習っていたら作れるレベルなんでしょうか?

今までの話から、配列やポインタが使えると思えないのでそれは使わない方向で行きましょう。
[追記]関数も怪しいか・・・。

例えば10進のカウントだとfor文で1から10までカウントして、それを表示すれば良いだけです。
forとprintfを使えば作れますので作ってみてください。
※ 参考として習っていそうなコードなんですけどね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

admin

Re: 2進カウントアップ

#6

投稿記事 by admin » 15年前

NONさんわざわざありがとうございす^^

確かに10進は言われればそうですね;;

でも2進はやはりわかんないです。

どうもすいませんでした

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 2進カウントアップ

#7

投稿記事 by softya(ソフト屋) » 15年前

まず、10進で良いので書いてみてくださいね。
そのコードをベースに2進化しましょう。
あっ変更点として10まででなく2進の8桁で表現できる最大値までループしてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

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

Re: 2進カウントアップ

#8

投稿記事 by non » 15年前

admin さんが書きました:確かに10進は言われればそうですね;;

でも2進はやはりわかんないです。
おや、こういうことでは、なかったですか?
2進のカウントアップという意味はどういう意味なのですか?
コンピュータの内部では10進と言うより、むしろ2進だと思うのですが。
ただ単に、2進数で表示するという意味だとばっかり思ってました。
non

閉鎖

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