none
Visual C++ 2008 Express Edition での 16進数への変換方法について RRS feed

  • 質問

  • どうも。

    今回は Visual C++ 2008 Express Edition での16進数への変換方法を知りたく質問させていただきました。

    私が想像しているプログラムは,

    ①ファイルを開く

    ②開いたファイルの内容を16進数で表示する。

    と,いうのを想像しております。

    一応,Hexなども使ってやってみたのですが,

    "error C3861: 'hex': 識別子が見つかりませんでした "

    というErrorが出てしまいます。

    Hexの使い方なども同時に教えてくれるとうれしいです。

    お願いします。

    2009年2月21日 2:21

回答

すべての返信

  • 「開いたファイルの内容を16進数で表示する。」の部分をもう少し詳しく説明していただかないと答えづらいです。

    MSDNのhexのドキュメントを読んでいただいて、期待しているものはこれでしょうか? たぶん違うと思いますが、C++でhexと言われればこれになります。
    万が一あっていたときのために一応簡単なサンプルを。

    1 #include <iostream> 
    2 using namespace std; 
    3  
    4 int main(){ 
    5   cout << hex << 1024 << endl; 
    6   return 0; 
    7

    10進数で1024という値を16進数の400に変換して画面に表示します。
    • 回答としてマーク sk7474 2009年2月26日 8:17
    2009年2月21日 3:43
  •  佐祐理さん,ご返信ありがとうございます。

    私が作りたいのは,コンソールアプリケーションではなく,フォームアプリケーションで作りたいのです。

    フォームアプリケーションでは,Hexを使えないのでしょうか?

    2009年2月21日 4:09
  • フォームアプリケーション、つまり、.NET Frameworkを使うC++ということですよね?(C++/CLIやCLRプロジェクトとも言われる)
    であれば、どんなクラスを使うべきか、まず、C#やVB.NETの文献でも良いので知ることが必要です。

    探し方の例

    1.「16進数 C#」で検索
        http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&num=50&q=16%E9%80%B2%E6%95%B0+C%23
    2.候補から欲しい情報がありそうなページをピックアップする。あんまり的を射ないページばかりであれば、検索キーワードを見直す。
    3.今回は下記のページをピックアップ。
        http://www.atmarkit.co.jp/fdotnet/dotnettips/057convhex/convhex.html
    4.文中から、Convertクラスが使えることが分かる。
    5.MSDNからConvertクラスを探してみる。(Googleだと「Convert site:msdn.microsoft.com」)
        http://www.google.com/search?num=50&hl=ja&q=Convert+site%3Amsdn.microsoft.com&lr=lang_ja
    6.Convertクラスのページを開く。
        http://msdn.microsoft.com/ja-jp/library/system.convert(VS.80).aspx
    7.左側のツリーから「Convertメンバ」を開く
        http://msdn.microsoft.com/ja-jp/library/system.convert_members(VS.80).aspx
    8.今回はInt32型(int型)に変換したいとして、「ToInt32」を開く
        http://msdn.microsoft.com/ja-jp/library/system.convert.toint32(VS.80).aspx
    9.Int32に変換するメソッドの中で、今回は文字列(String)が元でかつ、基数(16進数とか2進数とか)を指定したいので、そういった説明のあるメソッドを開く。
        http://msdn.microsoft.com/ja-jp/library/system.convert.toint32(VS.80).aspx
    10.9で開いたページが説明ですが、サンプルコードがないので、他のToInt32メソッドも見てみる。
        http://msdn.microsoft.com/ja-jp/library/sf1aw27b(VS.80).aspx
    11.C++の部分にサンプルがあるので、これをベースに9のページで説明されている引数を指定する。


    VBAとかで直感的なHEXというキーワードではなく、やりたいことをキーワードにして検索してみると結構当たりやすいです。
    また、C#やVB.NETに関して説明しているページなども参考になるでしょう。


    ちなみに、前も紹介したDOBON.NETさんのところにも記事はありますよ。
    http://dobon.net/vb/dotnet/programing/converthex.html
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    • 回答としてマーク sk7474 2009年2月26日 8:17
    2009年2月21日 10:38
    モデレータ
  • Azuleanさん、ご返信ありがとうございます。 

    とても詳しく,とてもわかりやすく説明していただき誠にありがとうございます。

    これを参考に頑張ってみますね!

    以前にも詳しく教えてくれて本当にありがとうございます^^

    後、今まで検索するときに必ず『Visual C++ Hex』などと検索して調べてました。

    検索のコツなども教えていただき,ありがとうございます^^

    本当にありがとうございました^^

    2009年2月21日 11:27
  • こんにちは。中川俊輔です。

    佐祐理さん、Azuleanさん、回答ありがとうございます。

    武井さん、フォーラムのご利用ありがとうございます。
    有用な情報と思われたため、佐祐理さん、Azuleanさんの回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔
    2009年2月26日 8:19