• 締切済み

大至急お願いします。

4ケタの16進数nを10進数で出力するプログラムなんですが、まったくわかりません。 ちなみに式はn=p×4096+q×256+r×16+s p,q,r,sは0以上16未満です。 お願いします。急いでます。

みんなの回答

  • queuerev2
  • ベストアンサー率78% (96/122)
回答No.7

No.1です。 各回答ごとに質問者が補足(とお礼)をつけられるようになっているのでぜひお使いください。つけた補足やお礼は回答のすぐ下に表示されます。 No.4様によるとemacsですか・・・ Emacs Lispでしょうか?それともemacsはエディタとして使って他の言語でプログラミングするのでしょうか? 他になにかきまりごとはないのでしょうか? 一応Emacs Lispと仮定してNo.1のVBScriptと同じようなものを書いてみました。 (+ (* p 4096) (* q 256) (* r 16) s) やや自信がありませんがたぶんこんな感じだと思います。 式の戻り値が画面にそのまま表示されるものと考えて結果の出力は特に行っていません。

busubusu888
質問者

お礼

ありがとうございました。

busubusu888
質問者

補足

emacs24.2を使っていて、他に決まりごとは何もありません。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.6

なるほど、Emacsですね。 (let ((q "A") (r "B") (s "C") (t_ "D")) (+ (* 4096 (string-to-number q 16)) (* 256 (string-to-number r 16)) (* 16 (string-to-number s 16)) (string-to-number t_ 16)))

busubusu888
質問者

お礼

ありがとうございました。

回答No.5

 p=(n>>12)&0xf;// 右へ12回ビットシフトし下4桁を抽出  q=(n>> 8)&0xf;// 右へ8回ビットシフトし下4桁を抽出  r=(n>> 4)&0xf;// 右へ4回ビットシフトし下4桁を抽出  s=(n>> 0)&0xf;// 右へ0回ビットシフトし下4桁を抽出  でどうでしょう。

busubusu888
質問者

お礼

ありがとうございました。

  • kamikami30
  • ベストアンサー率24% (812/3335)
回答No.2

とりあえず、落ち着きましょう。 問題をそのまま書いてみて、わからないところを聞いてみたらいいと思います。 物事を分析して必要なものを見極めることが、 全ての言語でのプログラミングで必須だと思います。 コンピュータは人間ではないので、コンピュータが理解できるように書かないとプログラムは動かないからです。 質問もしかり、 回答者が状況を把握できるように説明しなければ、憶測以外の回答はできません。 まずはそこからできるようにならないと、 プログラミングはできないと思います。 急がば回れということわざもありますから、そうならないように頑張って下さい。

busubusu888
質問者

お礼

まだまだ勉強不足です。すみませんでした。 ありがとうございました。

  • queuerev2
  • ベストアンサー率78% (96/122)
回答No.1

そうとうあわてておられるようですね。 と申しますのは、言語の指定も入出力の形式も書かれていないからです。 (なにかご指定等ありましたら補足ください) VBScriptの例を示しますと、 p,q,r,sが変数で、すでに各桁が数値で入っているとして、 n = p * 4096 + q * 256 + r * 16 + s MsgBox n とかでしょうか。