Home > php教程 > php手册 > 用int类型实现类型unsinged int的右移操作

用int类型实现类型unsinged int的右移操作

WBOY
Release: 2016-06-13 11:38:00
Original
957 people have browsed it

有很多脚本语言里面没有 都是 没有 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 Clipboard引用的内容:[www.bkjia.com] function RotateLeft($a, $n)
{
return ($a > 1) & 0x7fffffff) >> (31 - $n)); 注意运算符的优先级
}

对加密解密比较感兴趣的人,应该遇到过和我一样的问题,不知道有没有谁有更好的方法。

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template