簽到功能,滿足:簽到,簽到天數,某天是否簽到。
以下例項僅執行片段,若需儲存,可用快取或資料庫~
按每個月簽到:signday(幾號)
例如signday(5),得element=16(二進位制 10000),5號簽到成功,再簽到6號,signday(6),得element=48(二進位制 110000),6號簽到成功,以此類推
(也可以將signday(5)的5當做是第幾天簽到,不一定要按照號數籤)
element是簽到後的整形,例如,element=3 (二進位制11) 則簽到2天,連續一二號簽到 element=5(二進位制101 ,簽到2天,1號和3號簽到),簽到2天,算二進位制的1的個數
例如:element=6(二進位制 110),查一號是否簽到,看第一位數是否為1,是則簽到,否沒有簽到
上面的功能存表或存快取,只需要id(int),user_id(varchar),signin(int)即可滿足簡單的需求
**如下:
<?php
/** * 簽到工具類
*/class signingmanagers
/*** 當天簽到
** @return bool @簽到成功true, 失敗false
*/public function signtoday()
public function signday($day)
/*** 查詢當月某天是否簽到
** @param @dayofmonth 當月第幾天
* @return @簽到返回true, 否則false
*/public function getsignstatus($dayofmonth)
/*** @return @當月簽到次數
*/public function getsigndays()
/*** 計算二進位制1的個數
* @param $i
* @return int
* 0xaaaaaaaa = 10101010101010101010101010101010 (偶數字為1,奇數字為0)
0x55555555 = 1010101010101010101010101010101 (偶數字為0,奇數字為1)
0x33333333 = 110011001100110011001100110011 (1和0每隔兩位交替出現)
0xcccccccc = 11001100110011001100110011001100 (0和1每隔兩位交替出現)
0x0f0f0f0f = 00001111000011110000111100001111 (1和0每隔四位交替出現)
0xf0f0f0f0 = 11110000111100001111000011110000 (0和1每隔四位交替出現)
*/public function bitcount($i)
}
php讀取二進位制 php讀取二進位製流
將php資料轉換為二進位制資料 string pack string format mixed args mixed 將二進位制資料轉換為php資料 array unpack string format,string data format a nul padded string a nul 字串填...
二進位制 二進位制起源
現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...
判斷二進位製半整數(二進位制)
10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...