在編寫定時頁面時,將7位二進位制數表示周一到週日的時鐘設定情況(周迴圈)。
即 0000001 表示周一
0000010 表示周二
0000100 表示週三
0001000表示周四
0000011 則表示周一和周二都設定了該定時。
以此類推。
在滿足兩個定時不能在同一天的需求,首先就想到 通過判斷兩個定時的周迴圈進行位相與,如果相與的結果為false,則說明這兩個定時的不在同一天。如果相與的結果為true,則這兩個定時是衝突的。
除錯了之後,發現結果出錯,原因表示周定時的7位二進位制數為字串(string),而位相與 是資料(number)之間的運算子。
方法1:使用parsrint方法。
//定時互斥時
var a =『1000001』
var b=『1000001』
let flag =(parseint(a,2) &parseint(b,2))?true:false;
console.log(flag); //true
//定時不互斥
var a =『1000001』
var b=『0000100』
let flag =(parseint(a,2) &parseint(b,2))?true:false;
console.log(flag);
方法2:將字串轉換為陣列。
思路:先使用split方法將字串轉換成陣列,通過foreach方法遍歷兩個陣列,找出兩個陣列相同的部分,並儲存在空陣列between中。最後用include判斷陣列between中是否包含「1」。
var a =『1000001』
var b=『0000101』
var aa=a.split(』』); //[ 『1』, 『0』, 『0』, 『0』, 『0』, 『0』, 『1』 ]
var bb=b.split(』』); // [ 『0』, 『0』, 『0』, 『0』, 『1』, 『0』, 『0』 ]
var between =; //定義乙個空陣列
bb.foreach((item,indx)=>) // [ 『0』, 『0』, 『0』, 『0』, 『1』 ] 兩陣列中相同的部分
const flag= between.includes(『1』); //true
字串常用操作的實現
mystring.cpp 串採用定長順序儲存結構的基本操作 14個 sstring是陣列,故不需引用型別。串的定長順序儲存表示 include define maxstrlen 40 使用者可在255以內定義最大串長 1個位元組 typedef char sstring maxstrlen 1 0號...
字串操作函式實現
該函式的實現如下 void memcpy void dst,const void src,size t n return dst 該函式的實現如下 void memmove void dst,const void src,size t n 若dst的位址與src位址部分重疊 則從高位址開始複製 el...
如何實現字串翻轉?
strrev函式對英文很好用,直接可以實現字串翻轉,但是面對中文呢?肯定都是亂碼,對於這樣的問題有很多,比如strstr,substr等函式都是這樣的。還好php提供了mb 類的函式實現不同編碼 不同語言之間的相互轉換等操作。下面是我寫的php字串翻轉函式 mb 類的函式需要開啟乙個mb strin...