ページ 1 / 1
宿題がわかりません(;△;)
Posted: 2007年1月24日(水) 10:48
by あゆみ
整数を入力し,それを10進,16進(8桁),8進(11桁)で,
次のように並べて表示するプログラムを作成せよ。16進,8進についてはビ
ット処理を行うこと。繰返し文を用いることにより,幾つかのデータで実行を
確認してみよ。
12 0000000C 000000000014
-1 FFFFFFFF 37777777777
Re:宿題がわかりません(;△;)
Posted: 2007年1月24日(水) 11:02
by keichan
まず、どこがわからないのかを考えてください。
ビット演算については?
繰り返し文については?
Re:宿題がわかりません(;△;)
Posted: 2007年1月24日(水) 11:25
by あゆみ
ビット処理の意味がわかりません(^_^;)
Re:宿題がわかりません(;△;)
Posted: 2007年1月24日(水) 11:54
by keichan
今までにビット演算を行うコードを書いたことがありますか?
int a = 0xdc;
printf("%x\n", a & 0x01);
printf("%x\n", a & 0x02);
printf("%x\n", a & 0x04);
printf("%x\n", a & 0x08);
printf("%x\n", a & 0x10);
printf("%x\n", a & 0x20);
printf("%x\n", a & 0x40);
printf("%x\n", a & 0x80);
これがビット演算の一部ですが、
上記コードがどういう結果になるか分かりますか?
分からなければ実際に実行して動作を確認してみてください。
Re:宿題がわかりません(;△;)
Posted: 2007年1月24日(水) 14:39
by box
> 次のように並べて表示するプログラムを作成せよ。16進,8進についてはビ
> ット処理を行うこと。
今回必要な「ビット処理」って何でしょうね?
出題者が何をイメージしているのか、今ひとつピンとこないです。
printfの書式文字列を工夫すれば、仕様を満たすように出力できますが…。
Re:宿題がわかりません(;△;)
Posted: 2007年1月24日(水) 14:50
by バグ
>>boxさん
多分、ビット演算の練習じゃないでしょうか?
実際、あゆみさんはビット演算についてよく分かっていないようですし…
その為、わざと繰り返し文を使うように明記しているのだと思います。
Re:宿題がわかりません(;△;)
Posted: 2007年1月24日(水) 15:16
by box
最初の投稿にあった出力例を見ると、
12も-1も、ビット演算を行なわない状態で
そのまま16進・8進出力していますね。
繰り返し文を使うのは、いくつかのデータ(例:-1~12)で
結果を確認するためだと、問題文を読み取りました。
というわけで、ビット演算がどうからんでくるのか、
未だにわかっていない状態です。
Re:宿題がわかりません(;△;)
Posted: 2007年1月24日(水) 16:52
by フリオ
文字列にして表示するのでしょうか。
それなら,ビット演算を使ってできますが。
Re:宿題がわかりません(;△;)
Posted: 2007年1月24日(水) 17:21
by フリオ
それとも、16進表記と8進表記を1桁ずつ処理していくのでしょうか。
Re:宿題がわかりません(;△;)
Posted: 2007年1月25日(木) 04:31
by binjo
すみません、質問した方と関係ないんですけど、見てて、疑問に思ったので教えてください。
int a = 0xdc;
printf("%x\n", a );
printf("%x\n", a & 0x01);
printf("%x\n", a & 0x02);
printf("%x\n", a & 0x04);
printf("%x\n", a & 0x08);
printf("%x\n", a & 0x10);
printf("%x\n", a & 0x20);
printf("%x\n", a & 0x40);
printf("%x\n", a & 0x80);
これを実行すると
dc
0
0
4
8
10
0
40
80
こうなったのですが、これはどういう意味なのでしょうか?
Re:宿題がわかりません(;△;)
Posted: 2007年1月25日(木) 05:07
by 管理人
まず、ビット演算について、、、、文字で説明するより、
こちらにわかりやすく書かれています。
本当に最初っから書いてありますので、ここで意味を掴んでみてください。
http://www9.plala.or.jp/sgwr-t/c/sec14.html
Re:宿題がわかりません(;△;)
Posted: 2007年1月25日(木) 10:54
by box
>binjoさん
& はビットごとのANDをとります。
0xdc 11011100
& 0x01 00000001
----------------
00000000 (=0x00)
0xdc 11011100
& 0x02 00000010
----------------
00000000 (=0x00)
0xdc 11011100
& 0x04 00000100
----------------
00000100 (=0x04)
0xdc 11011100
& 0x08 00001000
----------------
00001000 (=0x08)
0xdc 11011100
& 0x10 00010000
----------------
00010000 (=0x10)
0xdc 11011100
& 0x20 00100000
----------------
00000000 (=0x00)
0xdc 11011100
& 0x40 01000000
----------------
01000000 (=0x40)
0xdc 11011100
& 0x80 10000000
----------------
10000000 (=0x80)