導航:首頁 > 編程語言 > php計算數字位數字

php計算數字位數字

發布時間:2025-04-10 19:16:28

Ⅰ 用php編寫程序,求出200到300之間的數,滿足條件。三個數字之積為42,三個數字之和為12。

<?php
for($i=200;$i<300;$i++){
$a=substr($i,0,1);
$b=substr($i,1,1);
$c=substr($i,2,1);
if($a*$b*$c==42&&$a+$b+$c==12)echo"$i ";
}
?>

Ⅱ PHP提取出一個數字的其中幾位

提取3~7位使用語句:
substr($num1,2,5)

公式中的2表示從開始位置(從0開始數),5表示提取長度。

Ⅲ php正則表達式字元串中提取數字,並截取其中的6位

<?php
$str='b37ba964bb7dfab1869e1cf8';
$preg="/d/is";
preg_match_all($preg,$str,$arr);
$temp=implode('',$arr[0]);
echo$temp;//匹配的數字
echo'<br/>'.substr($temp,1,4);//第2位開始取4個
echo'<br/>'.substr($temp,2,5);//第3位開始取5個
?>

Ⅳ PHP 分解出三位數的個十百位數

$num = 123; // 假設要分解的三位數為123
$units = array('百', '十', '個'); // 定義各位的單位
for ($i = 0; $i < 3; $i++) {
$digit = floor($num / pow(10, 2 - $i)); // 獲取當前位的數字
$num %= pow(10, 2 - $i); // 去掉已經獲取的數字
echo $digit . $units[$i] . ' '; // 輸出當前位的數字和單位
}

Ⅳ 關於php 位運算符的問題

這個涉及到系統底層,WEB開發中幾乎沒用到,知道下有這個東西就好了。底層的東西解釋總是簡單不了的。
變數在內存中的存放都是二進制數字。整數在32位系統上是佔用4位元組,一個位元組是8位,也就是32位,位運算就是位級的運算操作了。

$a << $b Shift left(左移) 將 $a 中的位向左移動 $b 次(每一次移動都表示「乘以 2」)。
假定變數 $a 的值是 3,$b 的值是 2。
那麼 $a 在內存中的存放的格式是:
00000000 00000000 00000000 00000011
每執行一次左移,都將所有的位向左移動,右邊補零,左邊超過的舍棄。
所以 $a 左移 2 得到的是:
00000000 00000000 00000000 00011000
也就是 12。相當於 3 × 2 × 2 = 12。

$a >> $b Shift right(右移) 將 $a 中的位向右移動 $b 次(每一次移動都表示「除以 2」)。
假定變數 $a 的值是 24,$b 的值是 2。
那麼 $a 在內存中的存放的格式是:
00000000 00000000 00000000 00011000
每執行一次右移,都將所有的位向由移動,右邊超過的舍棄,左邊空出的位補零。
所以 $a 右移 2 得到的是:
00000000 00000000 00000000 00000110
也就是 6。相當於 24 ÷ 2 ÷ 2 = 6。

位移運算是系統底層運算,運算的速度比乘除還要快很多,優化代碼優化到極致的時候,可以將數換算成二的公倍數,然後進行位移計算。但在WEB開發中幾乎沒有任何必要,而且超過系統底層了,程序在的可移植性就會降低。

其他的位運算符也是差不多的。比如:
$a & $b And(按位與) 將把 $a 和 $b 中都為 1 的位設為 1。
假定變數 $a 的值是 5,$b 的值是 6。
$a:
00000000 00000000 00000000 00000101
$b:
00000000 00000000 00000000 00000110
$a & $b :
00000000 00000000 00000000 00000101
00000000 00000000 00000000 00000110
───────────────────────────
00000000 00000000 00000000 00000100
豎的看,上下都是 1 的得到 1 ,否則就是 0。
所以 $a & $b = 4。

~ $a Not(按位非) 將 $a 中為 0 的位設為 1,反之亦然。
~ $a:
00000000 00000000 00000000 00000101
───────────────────────────
11111111 11111111 11111111 11111010
如果 $a 是有符號整數,第一位是符號位,1表示負數,那麼 ~ $a = -2147483642。
如果 $a 是無符號整數,第一位還是數據位,那麼 ~ $a = 4294967290。

以下的就不詳細介紹了:
$a | $b Or(按位或) 將把 $a 或者 $b 中為 1 的位設為 1。
$a ^ $b Xor(按位異或) 將把 $a 和 $b 中不同的位設為 1。

平常說的幾位的系統,就是系統處理整數的時候,是多少個位同時計算的,上面的例子都是基於32位系統。因為移動時超過的位將被舍棄,如果是64位或12位的,位移的結果就可能不一樣了,要將計算時位的數量調整下。

閱讀全文

與php計算數字位數字相關的資料

熱點內容
程序員放棄後會怎樣 瀏覽:159
河北模具編程 瀏覽:177
adb查找命令 瀏覽:308
安卓手機視頻文件夾怎麼打開 瀏覽:302
平板加密手機後怎麼關閉 瀏覽:557
流媒體伺服器應該注意什麼 瀏覽:528
d8命令編譯 瀏覽:942
壓縮包解壓需要多少空間 瀏覽:139
如何查找app屬性 瀏覽:380
android人臉識別技術 瀏覽:305
pc104編程 瀏覽:328
二維碼反編譯破解推廣 瀏覽:674
修改伺服器的mac地址 瀏覽:520
好玩的編程軟體 瀏覽:891
編程語言創始人有錢嗎 瀏覽:797
短視頻app怎麼獲客 瀏覽:8
查看雲伺服器的應用 瀏覽:427
javadump工具 瀏覽:558
程序員16g 瀏覽:421
程序員沒有辦法成為top怎麼辦 瀏覽:196