概要
16進数の文字列をバイナリデータに変換する関数です。パラメータ2の16進数文字列を整数値に変換し、パラメータ1に格納します。
書式
_hexasc2bin (変換先アドレス, 変換元データバッファ)
パラメータ1 : 内部デバイス、テンポラリアドレス
パラメータ2 : データバッファ
記述例1(ビット長が16ビットの場合)
_hexasc2bin ([w:[#INTERNAL]LS0100], databuf0)
databuf0 の内容が次のような場合
上記データを変換すると次のようになります。
記述例2(ビット長が32ビットの場合)
_hexasc2bin ([w:[#INTERNAL]LS0100], databuf0)
databuf0 の内容が次のような場合
上記データを変換すると次のようになります。
変換する文字列が16ビット、32ビット以上のデータになるときはエラーになります。
例)スクリプトのビット長が16ビット長の場合
_strset (databuf0, "123456")
_hexasc2bin ([w:[#INTERNAL]LS0100], databuf0)
上記式を実行したときに、文字列エラーステータス[e:STR_ERR_STAT]のエラー番号2(文字列変換エラー)が発生します。
変換する文字列に“0”~“9”、“A”~“F”、“a”~“f”の文字以外の文字を含む文字列データを変換したときはエラーとなります。
例)スクリプトのビット長が16ビット長の場合
_strset (databuf0, "123G")
_hexasc2bin ([w:[#INTERNAL]LS0100], databuf0)
上記式を実行したときに、文字列エラーステータス[e:STR_ERR_STAT]のエラー番号2(文字列変換エラー)が発生します。
エラーが発生した段階で処理が終了し、メイン関数の先頭に戻ります。(命令が呼び出された関数の中にある場合、呼び出し元の関数の呼び出された次の行に戻ります。)