php 二進位制簽到

2021-10-12 17:27:18 字數 1431 閱讀 3309

簽到功能,滿足:簽到,簽到天數,某天是否簽到。

以下例項僅執行片段,若需儲存,可用快取或資料庫~

按每個月簽到: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為正整數 我...