中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中字符串如何轉換整型

發布時間:2021-03-22 10:43:23 來源:億速云 閱讀:199 作者:小新 欄目:編程語言

小編給大家分享一下php中字符串如何轉換整型,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

php字符串轉換整型的方法:1、通過“intval($num);”方法將字符串類型的數字轉成整型的數字;2、利用ascii碼的方式將字符串轉成整型。

PHP-字符串轉整型-不使用內置函數

介紹

php字符串類型的數字如果想轉成整型的數字,一般我們都是采用系統內置的API去做轉換,但如果規定就不讓我們去用系統內置的API轉換,而是讓自己去實現一個函數轉換該怎么辦?這里我們看下如何去實現。

系統內置 API 方式

$num = '345432123';
 
 //(一)
$num = (int)$num;
//輸出:
//int(345432123)
 
//(二)
$num = intval($num);
//輸出:
//int(345432123)

采用 ASCII 碼方式

下面我們利用 ascii 碼的方式去做轉換,因為每個字符都對應一個 ascii 碼,當對這個字符做加減乘除的時候,實際上就是對 ascii 碼做加減乘除操作,也就是整型操作,最終會返回一個整型數字.

字符 '0' ~ '9' 的 ascii 碼是 48~57 我們在轉換的時候就是用每一個字符減去 '0' 例如: '1' - '0' = 1、'2' - '0' = 2 返回值就是一個Int類型,下面具體看代碼實現.

function convertInt($strInt = ''){ 
    $len = strlen($strInt);  
    $int = 0;
 
    for($i=0;$i<$len;$i++){
        $int *= 10;            
        $num = $strInt{$i} - '0';            
        $int += $num;        
    }
 
    return $int;        
}
 
 $num = '345432123';    
 var_dump(convertInt($num)); //輸出: int(345432123)
在 Redis 里面也有提供一個字符串轉整型的函數,也是通過ascii碼方式去做的,實現的比較完善嚴謹,具體可以參考下
string2ll 函數
#include <stdio.h>
#include <limits.h>
#include <string.h>
 
/* Convert a string into a long long. Returns 1 if the string could be parsed
 * into a (non-overflowing) long long, 0 otherwise. The value will be set to
 * the parsed value when appropriate. */
int string2ll(const char *s, size_t slen, long long *value) {
    const char *p = s;
    size_t plen = 0;
    int negative = 0;
    unsigned long long v;
 
    if (plen == slen)
        return 0;
 
    /* Special case: first and only digit is 0. */
    if (slen == 1 && p[0] == '0') {
        if (value != NULL) *value = 0;
        return 1;
    }
 
    if (p[0] == '-') {
        negative = 1;
        p++; plen++;
 
        /* Abort on only a negative sign. */
        if (plen == slen)
            return 0;
    }
 
    /* First digit should be 1-9, otherwise the string should just be 0. */
    if (p[0] >= '1' && p[0] <= '9') {
        v = p[0]-'0';
        p++; plen++;
    } else if (p[0] == '0' && slen == 1) {
        *value = 0;
        return 1;
    } else {
        return 0;
    }
 
    while (plen < slen && p[0] >= '0' && p[0] <= '9') {
        if (v > (ULLONG_MAX / 10)) /* Overflow. */
            return 0;
        v *= 10;
 
        if (v > (ULLONG_MAX - (p[0]-'0'))) /* Overflow. */
            return 0;
        v += p[0]-'0';
 
        p++; plen++;
    }
 
    /* Return if not all bytes were used. */
    if (plen < slen)
        return 0;
 
    if (negative) {
        if (v > ((unsigned long long)(-(LLONG_MIN+1))+1)) /* Overflow. */
            return 0;
        if (value != NULL) *value = -v;
    } else {
        if (v > LLONG_MAX) /* Overflow. */
            return 0;
        if (value != NULL) *value = v;
    }
    return 1;
}
 
//-------- 執行 ---------
int main(){
    long long num;
    string2ll("345432123",strlen("345432123"),&num);
    printf("%d\n",num); //輸出 345432123
    retunr 0;
}

以上是“php中字符串如何轉換整型”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延津县| 隆化县| 乌拉特中旗| 漳平市| 五家渠市| 海南省| 永城市| 于田县| 闸北区| 乌鲁木齐县| 普宁市| 明光市| 盖州市| 会理县| 梅州市| 东源县| 杭州市| 拉萨市| 肥城市| 自治县| 开封市| 宜都市| 宜宾市| 浪卡子县| 兰溪市| 于都县| 兴国县| 英德市| 云梦县| 浦江县| 文成县| 宣化县| 高雄县| 白玉县| 沂水县| 台北市| 澄迈县| 兰溪市| 北碚区| 诸暨市| 北海市|