程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 用int類型實現類型unsinged int的右移操作

用int類型實現類型unsinged int的右移操作

編輯:關於PHP編程

有很多腳本語言裡面沒有 都是 沒有 unsinged int 的,如 PHP。位運算 一般來說 int 和 unsinged int 沒有什麼差別,除了右移操作,在int 中是補1 在 unsinged int 中是補0,我想了好久,終於想到了一個比較妙的方法,只是,這個方法,右移的次數至少大於1。一般來說,0右移 沒有什麼意義。

(($a >> 1) & 0x7fffffff) >> ($n -1) 這裡$n 是右移的次數。 $n >= 1

比如,實現md5加密,一般來說要用到下面的函數,在PHP中可以這樣實現:

Copy to ClipboardLiehuo.Net Codes引用的內容:[www.bkjia.com] function RotateLeft($a, $n)
{
return ($a << $n) | ((($a >> 1) & 0x7fffffff) >> (31 - $n)); 注意運算符的優先級
}

對加密解密比較感興趣的人,應該遇到過和我一樣的問題,不知道有沒有誰有更好的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved