作者JYHuang (夏天到了,冷不起來了說)
看板PHP
標題[請益] 對一數值做判斷的用法
時間Fri Jun 25 11:53:50 2010
我目前有一個數值存放著狀態碼
是以二進位轉十進位的方法存放著
像這樣
0 => 0000 最初始
1 => 0001 狀態1
3 => 0011 狀態2
7 => 0111 狀態3
位元越高的優先權越高
我想用switch來判斷目前的狀態
除了把數值轉二進位,再算出第1個'1'的位置外
$bin = base_convert($num,10,2)
$bin = sprintf("$08d",$bin)
$pty = strpos($bin,'1')
還有沒有什麼比較快的方法可以直接算出他的運算值
像是 > 1 , > 2 , > 4 , > 8
然後用在switch上?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.162.30
推 Jerr:都要用 switch 了 有必要轉換嗎 06/25 14:05
推 Jerr:運算的話 intval(sqrt($num)) 就是出現1的最高位置 06/25 14:23
推 LPH66:intval(log($num,2)) 才是吧 @_@ 06/25 19:02
→ JYHuang:感謝...對於數學運算式的觀念實在是很薄弱 @.@ 06/26 04:06