実行結果が2進カウントアップ動作するプログラムを作りたいんですが、考えてもどうしてもわからないです・・
明後日のテストに似た問題を出すと言っていたのですが、先生に聞いても教えてくれませんでした。
繰り返し文(for文)あたりまで習っているのですが、難しくてわからないです↓↓
丸投げみたいになってすいませんが、教えてもらえないですか??
2進カウントアップ
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 2進カウントアップ
分からないことが多いので、次のことに答えてもらえますか?
・使用言語はC言語ですか?
・表示というか出力はprintfですか?
・何桁の2進数ですか?
・使って良い標準関数や文法はありますか? 配列ok ポインタngなど。
・10進のカウントアップを作って、ここに貼ってください。
・使用言語はC言語ですか?
・表示というか出力はprintfですか?
・何桁の2進数ですか?
・使って良い標準関数や文法はありますか? 配列ok ポインタngなど。
・10進のカウントアップを作って、ここに貼ってください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
admin
Re: 2進カウントアップ
もちろんC言語です。
出力はprintfで大丈夫です。
8桁の2進数です。
何を使ってもいいと思います。
カウントアップの作り方はわかんないです。
for文まで習っていたら作れるレベルなんでしょうか?
出力はprintfで大丈夫です。
8桁の2進数です。
何を使ってもいいと思います。
カウントアップの作り方はわかんないです。
for文まで習っていたら作れるレベルなんでしょうか?
Re: 2進カウントアップ
意味がわからないけど、こんなものを言っているのかな?
8ビットではないけど。
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進カウントアップ
>for文まで習っていたら作れるレベルなんでしょうか?
今までの話から、配列やポインタが使えると思えないのでそれは使わない方向で行きましょう。
[追記]関数も怪しいか・・・。
例えば10進のカウントだとfor文で1から10までカウントして、それを表示すれば良いだけです。
forとprintfを使えば作れますので作ってみてください。
※ 参考として習っていそうなコードなんですけどね。
今までの話から、配列やポインタが使えると思えないのでそれは使わない方向で行きましょう。
[追記]関数も怪しいか・・・。
例えば10進のカウントだとfor文で1から10までカウントして、それを表示すれば良いだけです。
forとprintfを使えば作れますので作ってみてください。
※ 参考として習っていそうなコードなんですけどね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 2進カウントアップ
まず、10進で良いので書いてみてくださいね。
そのコードをベースに2進化しましょう。
あっ変更点として10まででなく2進の8桁で表現できる最大値までループしてください。
そのコードをベースに2進化しましょう。
あっ変更点として10まででなく2進の8桁で表現できる最大値までループしてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 2進カウントアップ
おや、こういうことでは、なかったですか?admin さんが書きました:確かに10進は言われればそうですね;;
でも2進はやはりわかんないです。
2進のカウントアップという意味はどういう意味なのですか?
コンピュータの内部では10進と言うより、むしろ2進だと思うのですが。
ただ単に、2進数で表示するという意味だとばっかり思ってました。
non