hexToDec関数

本ページには広告が含まれています。

16進数を10進数に変換します。10進数を16進数に変換するにはdecToHex関数 (自作関数)を使います。

構文
  1. Double = hexToDec( hex, signFlg )
引数
hex 必須
16進数
signFlg 省略可
符号付きならばTrue
戻り値
10進数に変換した値

プログラム

UWSC

解説

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

16進数を10進数に変換

16進数を10進数に変換

使い方

UWSC
結果
CSV

プログラム実行例

ビットマップ画像を補色に変換(24ビット)

UWSC
使用関数

関連記事

decToHex関数 (自作関数)
10進数を16進数に変換します。負数・小数の値にも対応しています。
binToHex関数 (自作関数)
2進数を16進数に変換します。負数・小数の値にも対応しています。
hexToBin関数 (自作関数)
16進数を2進数に変換します。負数・小数の値にも対応しています。
decToBin関数 (自作関数)
10進数を2進数に変換します。負数・小数の値にも対応しています。
binToDec関数 (自作関数)
2進数を10進数に変換します。負数・小数の値にも対応しています。
16進数
radToDeg関数 (自作関数)
弧度法から度数法に変換します。
degToRad関数 (自作関数)
度数法から弧度法に変換します。
ARABIC関数 (自作関数)
ローマ数字をアラビア数字に変換します。
ROMAN関数 (自作関数)
アラビア数字をローマ数字に変換します。