- ベストアンサー
プログラマ電卓でどのように変換すればよい?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>Win7付属のプログラマ電卓でどのように変換したらそうなるのでしょうか? 「&H800」は2進数の100000000000なので10進数に置き換えると2^11=2048になります。 あなたの思考回路を見直して扱い値がWord(16bit)、DWord(32bit)、QWord(64bit)の何れを対象としているかの定義が必要です。 「&H800」は上の全ての条件で10進数に直すと2048になります。 >16進でF800と入力して10進に切り替えると、63,488になってしまいます。 &HF800はWord(16bit)として扱うと-2048であり、DWord(32bit)またはQWord(64bit)では63,488になります。 >いまプログラミングをしていて、プログラム上では、F800は2048になるのですが -2048(負数)ではなく2048(正数)になるのであればプログラムの誤りです。 あなたが扱っている値を2進数で評価すると誤りの原因が分かるでしょう。 >それを電卓で計算するにはどうすれば良いでしょうか? 電卓で強制的に誤りを発生させる手段はありませんのでプログラムの結果を電卓で確認してプログラムの誤りを認識してください。
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10359)
F800 は16bitで -2048 を表現した物です。 電卓の使い方で言うと、左下のword(16bit)を選択して16進で F800 を入れて10進に直すと -2048 になります。
お礼
あら おっしゃる通り、16bitにしたら、 F800が2048になりました。ありがとうございました。
- gha10320
- ベストアンサー率71% (5/7)
F800と入力して、63488になるのが正しいです。 800(16進)->2048(10進)です。 あなたのプログラムが間違っています。 &H800は16進の800という意味です。 F800のFはどこからでてきたのでしょうか。
お礼
最初の「F」が余計だったようですね。 見間違えてました。
お礼
ありがとうございます。