• ベストアンサー

10進数=16進数の表示

basicをやり始めたんですが、ダンプソフトの作成練習で、16進数表示を10進数で変更しようとした時、&Hの後に変数を入れようとしてエラーになってしまいました。 10進数「50」を16進数「32」にするやり方は分かるのですが、 10進数「50」を16進数「50」にする方法を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom11
  • ベストアンサー率53% (134/251)
回答No.4

こんにちは、 >、&Hの後に変数を入れようとしてエラーになってしまいました basicといっても、いろいろあるので、 エクセルのvbaを利用した場合をかきますと Public Sub f() Dim i10 As Integer Dim i16 As String i10 = 255 '10進数を16進数に変換 i16 = Hex$(i10) Debug.Print i16 '16進数を10進数に変換 i10 = Val("&H" & i16) Debug.Print i10 End Sub 出力結果 call f FF 255 こんな感じかな??

siriusu-1
質問者

お礼

お返事が遅くなってすみません!。とても分かりやすいご説明本当にありがとうございます。"&H"を文字として扱う所が分からなかったんですが、これを見て良く分かりました。文字の足し算として使うんですね。 助かりました。

その他の回答 (3)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

16進数「32」を10進数「50」にする方法なら Dim s As String Dim i As Integer s = "32" 'i = &Hs '←これはエラー i = Val("&H" & s)

siriusu-1
質問者

お礼

すみません。補足にお礼を書いてしまいました。

siriusu-1
質問者

補足

お返事が大変遅くなってすみません。わたしは始め&HSのやり方でやっていて、どうしてもうまく行かなかったんです。まず&Hを文字としてそれとSを足すと言う事が出来るなんてビックリしました。(きっとプログラムの世界では常識なんでしょうが)本当にありがとうございます。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

?? > 10進数「50」を16進数「50」にする方法を教えて下さい。 『10進数「50」』って、『ごじゅう』のことですよね? それが何故(どういう規則で)、『16進数「50」』になるんです?? 例えて言えば・・・ 『2時間』を『120分』にするやり方は分かるのですが、 『2時間』を『2分』にする方法を教えて下さい。 といっているような物です・・・ 別の事をやりたいのでは???

siriusu-1
質問者

お礼

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

siriusu-1
質問者

補足

書き方が悪くてすみません。本当に2時間を2分にしたいような書き方になってました。自分でもよく理解できていなかったようです。 tom11さんのように&Hを文字として扱って、変数と足し算する事で、思った結果になりました。

  • Mr_Holland
  • ベストアンサー率56% (890/1576)
回答No.1

10進数「50」をBCDで「5」と「0」に分けて、 16×「5」+「0」 とすれば、 10進数「80」=2進数「101 0000」=16進数「50」 になると思いますが、こういうことではないのかな?

siriusu-1
質問者

お礼

お礼が遅くなってすみませんでした。書き方がとても悪く、質問内容が良く分からなくなっておりました。tom11様が書いてくださった方法の事を聞きたかったのですが、全く違う質問になってしまったように思います。わざわざご回答くださいましてありがとうございました。

関連するQ&A

専門家に質問してみよう