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

輸入一個由數字組成的字符串,轉換成整數輸出,如輸入‘123’,輸出123,不得使用庫函數。
思路:
在這裏插入圖片描述
-引用自 編程之法-面試和算法心得-
下面我們利用 ascii 碼的方式去做轉換,因爲每個字符都對應一個 ascii 碼,當對這個字符做加減乘除的時候,實際上就是對 ascii 碼做加減乘除操作,也就是整型操作,最終會返回一個整型數字。
在這裏插入圖片描述
-圖片轉自網絡-

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

function convertInt($strInt = ''){ 
	//1.判斷是否輸入爲空。2是否含有非數字的字符。3.如果第一個字符串是‘-’,最終返回應爲負整數。4.字符串太長會導致轉換成整數,整數溢出。
	if($strInt == ''){
		return 0; //如果輸入爲空字符串,返回0
	}
    $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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章