看到<TFC2017/>的抽獎代碼
~~23.5 // 23
為什麼~運算子可以將數字取整呢?
~
小伙看你根骨奇佳,潜力无限,来学PHP伐。
經過 ToInt32。其作用是將被操作數的二進位形式按位翻轉。所以兩個 ~~ 連在一起就相當於進行如下操作: 對操作數進行 ToInt32 按位翻轉 再次位元翻轉其實也還是利用了 ToInt32 的絕對值取整 另外關於~ 操作符有個技巧還是比較實用的:~(-1) 的值為0,而且 -1 是唯一一個經過 ~ 運算 -1 是唯一一個經過 ~ 運算返回假值的值(包括其他那些特殊的值例如NaN、{}、[] 等都不會回傳假值)字串和陣列的indexOf 函數查找失敗會回傳-1,這時候就可以用if(~str.indexOf('str ')) // 來表示找到了比判斷 >= 0 或!= -1 更優雅,跟用 !! 來判斷非假值有異曲同工之妙
經過 ToInt32。其作用是將被操作數的二進位形式按位翻轉。所以兩個 ~~ 連在一起就相當於進行如下操作:
對操作數進行 ToInt32
按位翻轉
再次位元翻轉其實也還是利用了 ToInt32 的絕對值取整
另外關於~ 操作符有個技巧還是比較實用的:~(-1) 的值為0,而且 -1 是唯一一個經過 ~ 運算 -1 是唯一一個經過 ~ 運算返回假值的值(包括其他那些特殊的值例如NaN、{}、[] 等都不會回傳假值)字串和陣列的indexOf 函數查找失敗會回傳-1,這時候就可以用if(~str.indexOf('str ')) // 來表示找到了比判斷 >= 0 或
~(-1)
0
-1
,這時候就可以用
>= 0
更優雅,跟用 !!
作者:mdluo連結:https://www.zhihu.com/questio... 取整是把浮點數轉換了32位元二進位整數,所以能還原狀態的位元操作都能進行取整,如
連結:https://www.zhihu.com/questio...
作者:mdluo
取整是把浮點數轉換了32位元二進位整數,所以能還原狀態的位元操作都能進行取整,如
23.5 >> 0 //23🎜、🎜23.5 >> 0 //23🎜。 🎜連結:https://www.zhihu.com/questio...