● 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領域の先頭アドレス |
width | pdest の指す 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 の倍数である必要があります。