本ページには広告が含まれています。
16進数を10進数に変換します。10進数を16進数に変換するにはdecToHex関数 (自作関数)を使います。
- 構文
- Double = hexToDec( hex, signFlg )
- 引数
- hex 必須
- 16進数
- signFlg 省略可
- 符号付きならばTrue
- 戻り値
- 10進数に変換した値
プログラム
解説
- 2行目
- hexを大文字に変換し代入し直します。
- 3行目
- 10進数に変換した値を代入しておく変数。
- 4行目
- hexが小数ならばdecimalFlgにTrue、小数でなければFalseが代入されます。
- 5行目
- 小数点を除いたhexの文字数が偶数でなければ、hexの左側に0を結合。
- 6行目
- hexを2進数に変換して先頭が1ならばnegativeFlgにTrue、0ならばFalseを代入。
- 7-8行目
- 符号を表す値を代入しておくsignを宣言。正数ならば1、負数ならば-1を代入します。
- 9-20行目
- hexが負数のときの処理。ビットを反転させる処理を行っています。
- 10行目
- 最上位ビット・最下位ビットを取得するためにhexを2進数に変換。
- 11行目
- 最上位ビットを取得。小数ならばbinの小数点の左側の文字数、小数でなければ全体の文字数で最上位ビットを取得できます。
- 12行目
- 最下位ビットを取得。小数ならばbinの全体の文字数から整数部分の文字数を引いた値、小数でなれれば0で最下位ビットを取得できます。値は0かマイナスの値です。
- 13-18行目
- 2の補数を求めます。2の補数は1の補数(すべてのビットを反転させた値)に最下位ビットを加えたものです。
- 19行目
- dec2を16進数に変換しhexに代入します。
- 21行目
- decimalFlgがTrueならばhexの整数部分を、Falseならばhexをintegerに代入します。
- 22行目
- decimalFlgがTrueならばhexの小数部分を、Falseならば0をdecimalに代入します。
- 23-27行目
- hexの整数部分を10進数に変換します。integerの左側から1文字ずつ10進数に変換していきます。sが左からi番目の1文字を代入。sが数値かどうかをチェックし数値ならばsの値を、数値でなければ10進数の対応する値(A=10, B=11, …)に直してからnumに代入する。numに桁の重みを掛けた値をdecに代入。
- 28-32行目
- hexの小数部分を10進数に変換します。decimalの左側から1文字ずつ10進数に変換していきます。sが左からi番目の1文字を代入。sが数値かどうかをチェックし数値ならばsの値を、数値でなければ10進数の対応する値(A=10, B=11, …)に直してからnumに代入する。numに桁の重みを掛けた値をdecに代入。
- 33行目
- signとdecの積を戻り値として返します。
16進数を10進数に変換

使い方
- 結果
プログラム実行例
ビットマップ画像を補色に変換(24ビット)
使用関数
関連記事
- decToHex関数 (自作関数)
- 10進数を16進数に変換します。負数・小数の値にも対応しています。
- binToHex関数 (自作関数)
- 2進数を16進数に変換します。負数・小数の値にも対応しています。
- hexToBin関数 (自作関数)
- 16進数を2進数に変換します。負数・小数の値にも対応しています。
- decToBin関数 (自作関数)
- 10進数を2進数に変換します。負数・小数の値にも対応しています。
- binToDec関数 (自作関数)
- 2進数を10進数に変換します。負数・小数の値にも対応しています。
- 16進数
- radToDeg関数 (自作関数)
- 弧度法から度数法に変換します。
- degToRad関数 (自作関数)
- 度数法から弧度法に変換します。
- ARABIC関数 (自作関数)
- ローマ数字をアラビア数字に変換します。
- ROMAN関数 (自作関数)
- アラビア数字をローマ数字に変換します。
