• ベストアンサー

VB初心者ですが教えてください。16進数→10進数に変えるやり方。

tailkuppaの回答

  • tailkuppa
  • ベストアンサー率53% (52/98)
回答No.1

VB の環境がないので、記憶にたよって書きます。 誤りがあるかも知れません。 16進数文字列の先頭に"&h" を付けて、 Val() 関数を使えば整数に変換できると思います。 ただし、このままだと&H8000 以上の数が負の数になってしまうので、32768 を足して、 Voltage1 As Double '←適当な型にしてやってください Voltage1 = (Val("&H" & Data1) + 32768) / 65536 * 20 - 10 のようにすれば、V 数に変換できると思います。 A/D 変換などについては全く分からないので自信はないのですが、単純に質問文に沿って数値の変換をするだけであれば、こんな感じだと思います。 頑張ってください。

lukky-cope
質問者

お礼

ありがとうございます。出来るかどうかまだ試していませんが、今からやってみます。

関連するQ&A

  • EXCELでの16進数取り出し、上位桁と下位桁取り

    恐れ入ります。詳しい方教えてください。 各セルに2000までの数値があるデータがあり、このデータを16進数表記で、上位2桁と下位2桁に分けたいと考えています。 例) 870  → &h03, &h66 (870は10進数で366が16進数、これを&hを付けて03と66に分けたい) 1926 → &h07, &h86  ="0x"&DEC2HEX(C4, 4)を使って16進数4桁にすることまでは調べたのですが、上位2桁、下位2桁に分けられず悩んでいます。

  • バイナリーデータを16進数に表示したい

    バッファーにパックされたデータが入ってきます。 そのデータを1バイトずつHEXで表示したいのですが VB.NETでプログラミングしているのですが苦戦しています。 H01,H10,H20...等はしたコーディングで表示できるのですが HC5,HCA,E0等の上位4ビットが大きいと全て3Fとなって期待した表示ができません。 メモリーダンプして1バイト毎に16進数(0~F)で表示したいのと同様で、1バイトを変換しないでそのままHEX表示したいです。 下はうまく動かないサンプルです。開発言語はVB.NETです。 ------------------------------------ InBuffer = _Rfid.ReadExisting() hexData = "" For i = 0 To Len(InBuffer) - 1 hexData = hexData & Hex(Asc(Mid(inData, i + 1, 1))).PadLeft(2, "0"c) Next ----------------------------- どなたか方法をご教示ください。 宜しくお願いします。

  • 独学で最近c言語を始めたものです。10進数を16進数に変換するプログラ

    独学で最近c言語を始めたものです。10進数を16進数に変換するプログラムを作りました。 しかしコンパイルしてもエラーは出ないのですがprintfの部分で配列の結果のみが出ません。 如何せん、独学ですので気付かないところで簡単なミスをしているかもしれませんが、分かる方がいましたご教授ください。 #include<stdio.h> int main() { static char data[16]= {'1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; char hex[5]; short dec,num,i; for(;;){ for(i=0;i<=3;i++) hex[i]=' '; hex[4]='\0'; printf("10進数を入力してください。>>"); scanf("%d",&dec); if(dec==0) break; for(i=3;dec!=0;i--){ num=dec%16; dec/=16; hex[i]=data[num]; } printf("16進数は%sです\n",hex); } }

  • Excel 「0x」、「h」 付き 16進変換

    【Excel 2002 SP3】 を使用しております。 A1セル:"0xFFFFh" B1セル:"0x55h" C1セル:"0xAAh" D1セル:"0x0000h" 上記データが各セル書き込まれています。 上記値を10進に変換したいのですが、 A2セル:"=HEX2DEC("A1")" B2セル:"=HEX2DEC("B1")" C2セル:"=HEX2DEC("C1")" D2セル:"=HEX2DEC("D1")" 上記では10進変換できませんでした。 "0x","h"が原因だとわかっているのですが、 どちらも付加したまま10進変換できればと考えています。 VBAで文字解析するれば対応できそうでしたが、 VBAを使わず、Cellの式だけで実現したいと考えています。 何かよい方法はないでしょうか?

  • エクセルで上位を条件付きで抜き出す関数式の方法。

     よろしくお願いします。    A   B   C   D 1  あ   50   1   2  か   20   5 3  さ   45   0 4  た   60  -1 5  な   15   10 6  は   90  -15 7  ま   75   2 8  や   30   3 9  ら   10  -2  と有ります。 まずCの数で-2以上2以下という条件でBの点数の上位3位、下位3までを抜き出したいと思います。つまり この表では条件に当てはまるものはA名”あ””さ””た””ま””ら”で、上位3では”ま””た””あ”になり、下位は”ら””さ””あ”となり    A   B   C   D   E 1              ま   ら             2              た   さ 3              あ   あ 4  このようになるようにしたいと思います。実際はA名データーの数がこの表の九つよりも多く、順位数も3位ではなく6位ぐらいまで考えています。  関数式で表す方法をご存じの方、よろしくお願いします。

  • 2進数からアスキーコードへの変換についって

    趣味で電子工作を行っているものです。 picマイコンを使用して、A/D変換の結果10bitのデータを得ました。 8ビットのマイコンなので2つのレジスタに分かれてデータが格納されています。(上位2ビットと下位8ビット) この2進数のデータを10進数に変換し、一桁ごとにアスキーコードにして、シリアル通信を用いてPCに送りたいと思っています。 ここで、10bitのデータの2進数から10進数への変換。 10進数のデータを一桁ずつアスキーコードへ変換。 の2つのやり方がわかりません。 2進数のデータのままPCに送り、PCのソフト側で変換するほうが簡単なのですが、今回はPIC側で変換し、アスキーコードで送る必要があります。 プログラムに使用する言語はアセンブリです。 どなたか分かる方がいましたら教えてください。

  • 1バイト文字の上位4ビット・下位4ビットの入れ替え方法を教えて下さい

    あるパスワードをテキストファイルに書き込む処理です。 そのままだと、パスワードの意味が無いので、上位4ビットと下位4ビットを入れ替えて保存しようと思います。 上位・下位それぞれ4ビットシフトするところまでは出来ました。  Dim a As Integer  Dim a1 As Integer  Dim a2 As Integer  a = Asc("a")  a1 = a \ 2 ^ 4  a2 = a * 2 ^ 4  MsgBox (Hex(a1))  MsgBox (Hex(a2)) が、それを8ビットに戻す方法が分かりません。 また、パスワードは1バイト文字による文字列ですが、文字列長分を1バイトずつバッファに読み込んで、変換し、同サイズのバッファに詰め込んでいく処理も分かりません。 以前、MS-C(MSDOS上のC言語)を少しやったので、それでなら分かるのですが、VBは全くの初心者で、調べても調べても見当がつきません。 どうか教えて下さい。 宜しくお願い致します。

  • TCP/IP通信の送信データについて

    TCP/IP通信の開発をしています。 開発はVS 2005 VB.net です。 送信データは下記の通りとなっていますが、BCCの算出方法が分かりません。 送信データ:[STX TEXT ETX BCCH BCCL CR] 制御文字は下記の通りです。 STX 02H(hex) テキストの開始 ETX 03H(hex) テキストの終了 BCC 水平パリティとして誤り検出に使用する CR 0DH(hex) キャリッジリターン ※1)BCCは、STXの後からETXの前までバイト単位でXORを行い、結果を上位と下位の4ビットに分け、それぞれASCIIに変換して上位下位の順で転送する。 ※2)BCC計算範囲はTEXT部です。 ※1)の部分を同コーディングすればよいか分かりません。 ご教授いただければと思います。

  • サンプリング定理がわかりません

    サンプリング定理とそれに関わる内容についての質問です。 まず、アナログ-デジタル変換(A-D変換)について授業で教わったのですが、  ・コンピュータは0(0V)と1(Vcc)しかわからない。 とプリントの最初に記載されていて、0と1ということはわかりますが、0VとVccとは何なのかがわかりませんでした。 A-D変換のグラフの表していることはなんとなく理解できましたが、後に続くサンプリング定理の説明で、  (1)サンプリング周期はA-D変換したいデータの最小周期の半分以下の値にする(ナイキスト周期)  (2)つまり、A-D変換したいデータの最大周波数の2倍以上の値にする(ナイキスト周波数) →周波数=1/周期 と説明されただけで、 (1)のデータの最小周期とはどういうものなのか、なぜ半分以下の値にする必要があるのか そして(2)が、つまりで続いている後の意味もわかりませんでした。 補足なしでいつのまにかナイキスト○○と付け足されていて困っています・・・。 また、デジタル-アナログ変換(D-A変換)で、  入力された値=bit数 例)010(2)=2÷2(のn乗)=2÷2(の3乗)=2/8 となっており、2のn乗個に等分した縦軸でなぜ2を割るのかわかりません。 以上の所を教えて頂きたいと思います。よろしくお願いします。

  • 文字列を大文字の2桁ごとのコンマ付き16進数に変換する方法

    文字列を大文字の2桁ごとのコンマ付き16進数に変換する方法がわかりません。ただ単に文字列を16進数に変更するだけならbin2hex()でできますけど、誰か知っている方はいませんか?具体的には、変換された文字列が1a2b3c4d5e6fなら、1A.2B.3C.4D.5E.6Fと変換したいんです。どうすればいいですか?

    • ベストアンサー
    • PHP