• ベストアンサー

MATLAB 進数変換

MATLABで、0.1260 -1.0190 1.0838 のような10進数を16進数に変換するにはどうすればよいのでしょうか?dec2hex()という関数を利用するのですが整数でないと使えないので整数に直すのでしょうか?

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

  • ベストアンサー
  • maiko0333
  • ベストアンサー率19% (840/4403)
回答No.1

まず、2進に変換でしょうね。 0.5, 0.25, 0.125, 0.0625, 0.03125, 単位に1,0が決まりますから、小数点位置から4つずつ0からfに変換ですね。 最後が4桁無ければ」0をいれてください。

caneo_bote
質問者

お礼

ありがとうございました!

その他の回答 (2)

  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.3

>MATLABで、0.1260 -1.0190 1.0838 のような10進数を16進数に変換するにはどうすればよいのでしょうか? MATLIBの進数変換は使えません。 >dec2hex()という関数を利用するのですが整数でないと使えないので整数に直すのでしょうか? 違います。 「小数点を含んだ実数」の値は「16進数にする事は不可能」です。 MATLIBでは「実数値」は「IEEEに準拠した内部表現形式」で記憶されているため、そのままでは「16進数」には変換出来ません。 typecastとかを使うと、内部表現形式のまま16進に変換出来るかも知れません。

  • maiko0333
  • ベストアンサー率19% (840/4403)
回答No.2

それか ×16を繰り返し、小数点以下がなくなればそれで変換し、 ×16した回数分小数点をずらせばいいのかな?

関連するQ&A

  • Excelで16桁の16進数を10進数に変換

    Excelを使って、16桁の16進数を10進数に変換したいと考えております。 HEX2DECでは、桁数が多すぎてエラーとなってしまいました。 関数の組み合わせでも、VBAで組むのでもどちらでも構いません。 こうすればできる、というようなアイデアだけでも、いただけるとうれしいです。 宜しくお願いいたします。

  • 2進数と16進数の相互変換

    VBScriptで 2進数と16進数の相互変換をしたいのですが、 進数を変換する関数としては、 Hex関数やOct関数ぐらいしか見当たりません。 どうしたらいいのでしょうか? よろしくお願いします。

  • VBAで進数変換

    マクロ内で、 16進数から2進数、2進数から10進数といったように 変換したいんですけど、うまいほうほうないですか? シート上ならHex2decとか使えるんですけど、 10桁までしかできないし、できればマクロ内でやりたいんです。 でも、Macro中には10進数から16進数とかはあるんですけど、逆が見当たらないんです。 ちなみにWorksheetFunctionにもありません。 助けてください。

  • 【VB6.】10進数を16進数に変換(符号つき)

    お世話になります。 どうしてもわからないので教えてください。 やりたいことは以下です。 ●DecをHexの符号ありに(1byte)変換 ●結果としてDec「-02」を変換してHex「FE」が欲しい。 -128~127(変換後は80~7F)まで200通り以上あるので自動変換したいです。 使用しているインターネットのサイトだとできますが、VB6のプログラムで書くとうまくいきません。 ネットに繋がらない環境で変換しなくてはいけなくなったので、どなたか助けてください! お願いします。

  • 独学で最近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); } }

  • 10進数→2進数

    hex関数のように10進数から2進数に変換する関数はないでしょうか? もしあれば教えてください。

    • ベストアンサー
    • Perl
  • 10進数を2進数に変換したい。

    業務上であるログの値を解析しています。 ※ログはcsv形式で、Excelに落として編集加工しています。 その中で、10進数を2進数に変換する必要がありますが、変換方法がよくわかりません。 ExcelでDEC2BINという関数があるところまでは突き止めたのですが、 この関数は、与件(10進数)が512を超えるとエラーとなってしまいます。 (解析対象は10進数で10桁です・・。) 2進数に変換する関数、方法などはあるのでしょうか? 大量にログがあるので、一括して加工したいのですが・・。 (VBAの使いかたがわからないので、何とか関数か何かで対処したいのですが・・・。Excelは2002を使ってます)

  • n進数を10進数に変換するプログラムがわかりません

    整数n(2<=n<=16)とn進数の数字列digitsを与えると10進数に変換して表示するプログラム 関数void base2dec(int n, string digits, int &dec)を使用する 実行例 110101(2)=53 123(8)=83 7ACE(16)=31438 以下はとりあえずつくったみたプログラムです #include<iostream> #include<string> using namespace std; void base2dec(int n, string digits, int &dec) { int i,x=0; for(i=0; i=digits.size()-1; i++) { if(n<10) { x=digits[i]-'0'; } else { x=digits[i]-'A'+10; } dec=(x*n); if(cin >> digits[i++]) { if(n<10) { dec=dec+(digits[i++]-'0'); } else { dec=dec+(digits[i++]-'A'+10); } } } int value = dec; } int main() { int n,value; string digits; cout << "何進数ですか-->"; cin >>n; cout << "数字列を入力してください-->"; cin >>digits;; base2dec(n,digits,value); cout << digits << "(" << n << ")=" << value << endl; return 0; } void関数の中、特に計算方法が間違っていると思うのですが、なにがいけないかわかりません。ちなみにn進数から10進数に直す方法は理解しています。

  • 16進数関数のhex関数について

    16進数を扱う、「hex」という関数があったようななかったような・・・。 16進数の文字列を、例えば、「"0a"」という文字列が あって、この"0a"の前に"0x"という文字列を付け足して"0x0a"とし、この"0x0a"を10という整数値に変換したいのですが、どのようなソースファイルになりますか。 初心者なので、どうプログラムを組んで良いのか分かりませんでしたので、教えて下さい。

  • n進数の値を10進数の値に変換するには?

    こんにちは。 C言語において、n進数の値を10進数の値に変換する方法を考えています。 例えば、2進数の101を、10進数で表すと5になります。 これを関数化し、 n_to_m(int x, unsigned n); といったプロトタイプで、 渡された整数x(n進数)を、10進数での値に変換する関数を作りたいのです。 逆に、10進数の値を、n進数の値に変換する関数も一緒に作りたいと考えています。 何かいい方法を思いついた方がいらっしゃれば、是非アドバイスを頂きたいと思います。 では、よろしくお願い致します。