• ベストアンサー

ヘキサコードとバイナリについて

Oh-Orangeの回答

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★もしかして? ・ヘキサコードとは16進文字列のことかな?  これならば atoi() 関数では整数値に変換できません。  ご自分で類似関数 htoi() などを作成して下さい。 サンプル: #include <ctype.h> #include <stdio.h> // 16進文字→整数値に変換 int HexToVal( char c ) {  if ( isxdigit(c) ){   if ( isdigit(c) ) return c - '0';   if ( isupper(c) ) return c - 'A' + 10;   return c - 'a' + 10;  }  return -1; } // メイン関数 int main( void ) {  char *p, hex[] = "31 32 33"; ←16進文字列(ヘキサコード)  int value[ 3 ]; ←変換後の整数配列  int hi, lo; ←分かりやすく用意    // 初期化  p = hex;    // 1,2桁目  hi = HexToVal( *p++ );  lo = HexToVal( *p++ );  value[ 0 ] = (hi << 4) | lo;  p++;  // 4,5桁目  hi = HexToVal( *p++ );  lo = HexToVal( *p++ );  value[ 1 ] = (hi << 4) | lo;  p++;  // 7,8桁目  hi = HexToVal( *p++ );  lo = HexToVal( *p++ );  value[ 2 ] = (hi << 4) | lo;  p++;    // 出力  printf( "%c %c %c\n", value[0], value[1], value[2] );  return 0; } ※変換の仕組みを分かりやすくするようにループは使っていません。

_ab
質問者

お礼

ヘキサコードは16進文字列のことです。 言葉足らずで申し訳ありません。 サンプルコードを参考にさせて頂いています。 ありがとうございます。

関連するQ&A

  • バイナリコードを見つけ出すツールを教えてください

    私のパソコン内にテキストコードのみで構成される拡張子がtxtやhtmlのファイルが大量にあります。 パソコンがウイルスに感染すると、パソコン内のファイルがいつの間にか変更されていることがありますが、変更されているかどうかを調べるためにバイナリコードを見つけ出すツールを探しています。 テキストコードのみで構成されていたファイルの中身が変更されていたなら、バイナリコードが付加されているはずなので、バイナリコードを見つけ出すことが出来れば、そのファイルの中身が変更されていることが分かるという判断です。 notepadでバイナリファイルを開くと、黒い四角や難しい漢字、半角のカタカナなどが表示されるので、とりあえず その黒い四角 をコピーして 試しに GrepReplaceで、検索文字列の欄に 黒い四角 をペーストして、あるファイル(テキストコードのみのファイルにバイナリファイルを結合させたファイル)の中身を検索しましたが、 黒い四角があるはずなのに、GrepReplaceでは残念ながらヒットしませんでした。 バイナリコードである 黒い四角 を検索文字列にして検索をすると、的確にヒットするツールがあれば教えてください。 またバイナリコードが含まれているかどうかについて、数多くのファイルを一括して調べることが出来るツールがあれば教えてください。

  • VBでバイナリエディタを作成について

    VisualBasic6 SP5でバイナリエディタを作成しようとしているのですが、 例えばVariant型に格納したバイナリ文字列を16進表示で表示させたり、その逆の16進数を Variant型の16進数に変換するよい関数はありますか? また、バイナリエディタで良くある右側のテキスト表示ですが、ASCで表示させているだけでしょうか? よろしくお願いいたします。

  • MIDIファイルをバイナリ⇒16進コード変換したい

    どのような方法を用いれば、MIDIファイルのバイナリコードを 16進コードに変換できますか。 ネット上で検索したところ、Node.js を使う方法しか見当たりませんでした。 自前で javascript を使用して、.binaryToString() を用いましたが この方法では、変換された結果には 英単語と 文字化けした文字列が混在していて MIDIファイルの部分的な編集作業に利用することが 困難なようでした。 MIDIファイルの内容を text editor 上で手直しするために できれば javascript でバイナリコードを editor 上で読めるように 変換する方法をご指導いただけますでしょうか。 よろしくお願いいたします。 .

  • バイナリ出力

    バイナリのテストデータを作成しており、VBAで作成中です。 以下の内容で困っております。 「0~65525の値を2バイトの情報(VCでいうunsigned shortの型)としてバイナリファイルに出力する。」 変数long型で値を取得した場合、4バイトの情報としてバイナリ出力されてしまいます。これを2バイトの情報として出力する方法をご教授願えないでしょうか? よろしくお願いします。

  • バイナリ5バイトを文字10バイトに変換

    バイナリ5バイトを文字10バイトに変換 いつもお世話になっています。 C++初心者です。 12 34 56 78 90(バイナリ5バイト)を 1234567890(文字10バイト)に変換する方法はありますか? バイナリで読み込んだデータがあり、特定箇所に、数字10桁が格納されてます。 下記イメージです。 12 34 56 78 90(バイナリ5バイト) それを文字10バイトで処理するしたいのですが、変換方法がネットで探せませんでした。 お知恵をお貸しください。 環境はVC++6 です。 よろしくお願いします。

  • Excelでセル内の文字列をバイナリ値として扱う方法はないでしょうか。

    Excelでセル内の文字列をバイナリ値として扱う方法はないでしょうか。 セルに貼付けた(エンコードされている)日本語URLをデコードしたいと思っております。 Unicode文字列はVBAからJScriptの関数を呼び出して対応しましたが、 長期的にはEUC-JPやその他の文字コードもデコードしたいと思っています。 手法は今も調べていますが現時点では、汎用的な関数を自作するしかないと認識しています。 そこで、 ADODB.Streamオブジェクトにバイナリモードでセルの値を書き込んだ後に、 テキストモードで任意のCharsetを指定してみたのですが、 セルの値は文字列として扱われ、バイナリ値として直接書き込めませんでした。 具体的には、EUC-JPでエンコードされた 「%a5%c6%a5%b9%a5%c8(テスト)」という文字列からReplace関数で「%」を除去し、 バイト型配列に代入した時点で、「a5c6a5b9a5c8」という文字列として扱われている という状態です(バイナリ値として入力されませんでした)。 上記以外のアプローチの仕方も含めて模索している状態です。 問題に対する考え方だけでもご指摘いただければと思います。 よろしくお願いします。

  • テキストデータをそのままバイナリへ

    初心者です。 テキストデータ(ASCII)として取り込んだ 「05 50 0E」 といった文字列を そのままバイナリデータ(16進)としての 「05 50 0E」 に変換したいのですが、こういった処理をする関数ってあるでしょうか? もしなければ作ってみたいのですが、その際の考え方や有用な関数などありましたら教えていただけると嬉しいです。

  • バイナリファイルとバイナリ文字列の違い

    がわかりません。 例えば >http://e-words.jp/w/E38390E382A4E3838AE383AAE58897.html をみるとバイナリ列は1バイトを連ねたものだというらしいです。 つまり【文】という文字列を文字コードUTF-8でバイト配列化すると [1] => 230 [2] => 150 [3] => 135 となります。 (これはPHPでunpackかけましたが他の言語のGetBytes()などでも同じバイト値がでました。) この【文】という文字列はバイナリ列になるわけですよね? 例えばこの【文】という文字だけを保存したbun.txtというファイルはバイナリーファイルに なるのでしょうか? バイナリファイルの定義をみると >http://e-words.jp/w/E38390E382A4E3838AE383AAE38395E382A1E382A4E383AB.html 上記URLだと >文字コードの範囲などを考慮せずに作成されたファイル というのがバイナリファイルであるとあります。 つまりバイナリファイルとは 1バイト・・つまり8ビット(0~255)までの数値で表したものを連ねたもので なおかつ、文字コードなどの解釈を一切行わなずに、バイト値のみが記述されたデータと おもってもよいのでしょうか?

  • 文字列を%+2桁のヘキサ

    の列に変換するPHPの関数はあるでしょうか? foo.php?x= の後につける文字列を作りたいのです ここに置けない文字列があると困るので変換しておきたいのです

    • ベストアンサー
    • PHP
  • バイナリデータの検索(VB.NET2008)

    バイナリファイルを読込み、バイト配列に格納しています。 aaa(0) = 0 aaa(1) = 90 aaa(2) = 0 aaa(3) = 255 aaa(4) = 255 aaa(5) = 0 aaa(6) = 255 この配列から、「FFFF」が見つかった位置を検索したいと考えています。 (上の例で言うと3を取得したい) 現在は配列の最初から最後まで1バイトずつずらして読込み、見つかった場所を特定しています。16進表記の文字列に変換し、文字列として検索する方法も考えましたが、どちらも非効率な気がしています。 他のやり方を知っている方がいましたら教えてください。 [環境] VB2008,XP32SP3