● 関数リファレンス

文字列を 64 bit 型整数に変換

    INT64 __stdcall     floatex_strtoi64(const char *pstr,char **ppstop,int radix,int *pboverflow);

    UINT64 __stdcall    floatex_strtoui64(const char *pstr,char **ppstop,int radix,int *pboverflow)

引数

引数名意味
pstr変換対象の文字列を格納した char型配列の先頭アドレス
ppstop走査停止時のポインタを格納するポインタの先頭アドレス(NULL指定可)
radix基数
pboverflowオーバーフローフラグを受け取る int型変数の先頭アドレス(NULL指定可)

戻り値

変換結果を返します。

説明

floatex_strtoi64 は文字列で表現された整数値を INT64型に変換します。floatex_strtoui64 は UINT64型に変換します。これらの関数は、FPU を使用しません。

    変換する文字列のフォーマット.

        [空白]  [+ または -] [0 または 0x または 0X または 0b または 0B] [数値]
                     ↑                          ↑
                    符号                   基数指定文字列
先頭側の空白は無視されます。数値は一文字以上の英数字で構成された文字列です。
このフォーマットに従っていない文字列の場合は、走査を途中で停止します。

radix と基数指定文字列

数値の範囲と表現

ppstop

ppstop にポインタのアドレスを指定すると、走査を停止した位置をそのポインタに返します。走査停止位置の情報が不要な場合は、ppstop に NULL を指定する事ができます。
停止位置の文字を調べれば、変換の停止理由を調べる事ができます。
例.

    INT64       v;
    char        *pstr,*pstop;

    pstr = "123456789";
    v = floatex_strtoi64(pstr,&pstop,0,NULL);
この場合、変換は成功するので、pstop が指す位置は末尾のヌル文字です。
    pstr = "12345@6789";
    v = floatex_strtoi64(pstr,&pstop,0,NULL);
この場合は数値の中に変換できない文字 '@' が入っているので、pstop は '@' の位置を指します。

pboverflow

pboverflow に int型変数のアドレスを指定すると、正常終了した時は 0 、オーバーフローした時には 1 をセットします。