● fixed X ユーティリティー - 関数リファレンス

数値文字列を FIXEDVAL値に変換

    int __stdcall  fixedutil_signed_str2num(char *psrc ,int radix ,PFIXEDVAL pdest ,int width ,PFIXEDVAL pworkarea );

    int __stdcall  fixedutil_unsigned_str2num(char *psrc ,int radix ,PFIXEDVAL pdest ,int width ,PFIXEDVAL pworkarea );

引数

引数名意味
psrc変換対象の文字列が格納されている領域の先頭アドレス
radix変換基数(2 〜 36)
pdest変換された数値を格納する FIXEDVAL領域の先頭アドレス
widthpdest の指す FIXEDVAL値の数値幅(バイト単位)
pworkarea関数が使用するワークエリアを指す FIXEDVAL領域の先頭アドレス

ワークエリアに必要なサイズwidth × 3 以上のサイズが必要

戻り値

正常終了した場合は STATUS_NORMAL を返します。
radix が 2 〜 36 の範囲外の場合は STATUS_PARAMERROR 、数値に変換できない文字や radix で指定した基数に適合しない文字を発見した場合は STATUS_ERROR 、オーバーフローが発生した場合は STATUS_RANGEOVER を返します。

説明

psrc の指す領域にある radix 進数の数値文字列を数値に変換し、pdest に格納します。

psrc の指す文字列にある、前方の空白文字は無視します。その後、負符号があれば結果を負にし、正符号または符号が無ければ結果を正で返します。
文字列は末尾ヌルを終端としている必要があります。

radix ≦ 10 の場合、'0' 〜 '9' の文字を数値として認識します。radix > 10 の場合は '0' 〜 '9' に加え、'A' または 'a' から始まる英文字も数値として認識します。

変換中の数値がオーバーフローした場合は、その数値幅で最大の数値(負符号が付いている場合は最小値)を返し、戻り値に STATUS_RANGEOVER を返します。オーバーフロー時でも、文字列の終端に達するまで文字チェックを続けます。

関数fixedutil_signed_str2num は符号を考慮し、fixedutil_unsigned_str2num は符号を考慮しません。しかし、fixedutil_unsigned_str2num であっても、文字列に負符号が付いていた場合は 2 の補数で結果を返します。


引数 pdest の指す領域は、width が示す数値幅以上のサイズを持っている必要があり、width は 4 の倍数である必要があります。