平成23年特別午後問7 設問2(2)c
広告
keroppyさん
(No.1)
こちらの解答は「13-i」となっていますが、正しくは「14-i」ではないのでしょうか?
iはLEDを示すカウンタなので0~5の値をとるわけですが、例えばLED0の部分に4という数字を表示させようとした場合i=5、4の表示は16進数で0066→2進数で0000 0000 0110 0110=pworkとなると思います。
問われ方が「pworkの(c)ビット目を1に変更する」とあるので、解答の「13-i」を当てはめると"c=8"になってしまうのでpworkが0000 0000 1110 0110となってしまい正しい結果が得られないと感じたのですが。。。(本来は0000 0001 0110 0110が正しい値のはず)
どこを勘違いしているのか理解できていないので教えていただきたく、よろしくお願いします。
iはLEDを示すカウンタなので0~5の値をとるわけですが、例えばLED0の部分に4という数字を表示させようとした場合i=5、4の表示は16進数で0066→2進数で0000 0000 0110 0110=pworkとなると思います。
問われ方が「pworkの(c)ビット目を1に変更する」とあるので、解答の「13-i」を当てはめると"c=8"になってしまうのでpworkが0000 0000 1110 0110となってしまい正しい結果が得られないと感じたのですが。。。(本来は0000 0001 0110 0110が正しい値のはず)
どこを勘違いしているのか理解できていないので教えていただきたく、よろしくお願いします。
2022.04.12 14:36
nsさん
★AP ブロンズマイスター
(No.2)
ざっと読んだだけですが・・・
"pworkの[c]ビット目"というのは上位ビット(左側)から数えるのではないでしょうか。
"pworkの[c]ビット目"というのは上位ビット(左側)から数えるのではないでしょうか。
2022.04.12 14:52
keroppyさん
(No.3)
お返事ありがとうございます。
理解が間違ってさえいなければ変数pworkの中の右から見て9~14ビット目を変更するという処理だと思いますので、左から数えたとしても正解にならないと思っています。
pworkの1~7ビット目は数字を表示するために光を出力する部分、9~14ビット目でLED 0~5のどの箇所を出力するのか、iの範囲としては0~5。
右から見て9~14ビット目の値を変更させて出力するLEDを調整するはずなのですが、「13-i」ではとり得る範囲が8~13と本来の位置と一つずれてしまうと思うのです。
それともこの問題では一番右端の部分を"1ビット目"ではなく"0ビット目"という解釈になっている?
理解が間違ってさえいなければ変数pworkの中の右から見て9~14ビット目を変更するという処理だと思いますので、左から数えたとしても正解にならないと思っています。
pworkの1~7ビット目は数字を表示するために光を出力する部分、9~14ビット目でLED 0~5のどの箇所を出力するのか、iの範囲としては0~5。
右から見て9~14ビット目の値を変更させて出力するLEDを調整するはずなのですが、「13-i」ではとり得る範囲が8~13と本来の位置と一つずれてしまうと思うのです。
それともこの問題では一番右端の部分を"1ビット目"ではなく"0ビット目"という解釈になっている?
2022.04.13 10:07
nsさん
★AP ブロンズマイスター
(No.4)
全然間違ったこと言ってましたね。すみません。
これが正しい気がします。
問題文のどこから読み取れるか、と言われると私もちょっと分からないです・・・
PIO_Dの Dxx にセットされるのは、pworkの xx ビット目という考え方かもしれませんね。
>それともこの問題では一番右端の部分を"1ビット目"ではなく"0ビット目"という解釈になっている?
これが正しい気がします。
問題文のどこから読み取れるか、と言われると私もちょっと分からないです・・・
PIO_Dの Dxx にセットされるのは、pworkの xx ビット目という考え方かもしれませんね。
2022.04.13 12:09
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。