# PHP 无符号右移 仅用于int形, PHP 的int为32位
# // 右移旋转
function rightRoate($int,$n){
$min = intval(PHP_INT_MAX + 1);
$max = PHP_INT_MAX;
for ($i=0; $i < $n; $i++) {
// 进行右移
if($int & 1){
$num = $min;
$int >>=1;
$int |= $num;
}else{
$num = $max;
$int >>= 1;
$int &= $num;
}
}
return $int;
} // 无符号右移
function unsignedRight($int, $n){
for ($i=0; $i < $n; $i++) {
if( $int < 0 ){
$int >>= 1;
$int &= PHP_INT_MAX;
}else{
$int >>= 1;
}
}
return $int;
}

1. 需要注意的是位运算使用补码进行运算的

PHP无符号右移与旋转右移的更多相关文章

  1. javascript 按位或(|),无符号右移(>>>)运算,组合技巧来实现————密码强度提示,四种情况??

    直接上代码,原来的代码中,switch中的第一个case,判断之后,少加了个break 跳出判断语句,害得我查了半天,“怎么样式老是不对,不科学啊,呵呵,原来是没跳出case的判断了,还会执行后面的判 ...

  2. 原码,反码,补码 与(&) 或(|) 非(~) 异或(^) 左移 << 右移 >> 无符号右移 >>>

    原码 数字在计算机中以二进制表示,8位的字长,最高位是符号位, 正数为0,负数为1.比如,3为0000 0011: -3为1000 0011. 注意,Java中int为32位.3的16进制表示为3,- ...

  3. java的<<左移,>>右移,>>>无符号右移

    >>右移 右移,道在二进制中,假设用一个32位的Int表示一个64,那么高位就都是0,所以当我们把整个二进制数右移,如0100000 >> 2 = 0001000,可以看到右移 ...

  4. java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)。

    1. 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数. 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数. 左移的规 ...

  5. ABAP语言实现 左移 <<、无符号右移 >>> 位移操作

    这几天要在ABAP中实现 3DES 标准对称加密算法,与其他外部系统进行加密/解密操作.由于ABAP语言中没有 左移 <<.无符号右移 >>>  操作,只能自己实现 思路 ...

  6. 分析轮子(二)- << ,>>,>> (左移、右移、无符号右移)

    前言:写 分析轮子(一)-ArrayList.java 的时候看到源码中有 int newCapacity = oldCapacity + (oldCapacity >> 1); 这样的代 ...

  7. PHP实现无符号右移(js中的 >>>)

    移位包括有符号左移(<<).有符号右移(>>).无符号右移(>>>),其中 js 支持三种移位,PHP只支持前两种移位(没查到第三种),恰好需要PHP进行无符 ...

  8. c# 实现无符号右移

    /// <summary> /// 无符号右移, 相当于java里的 value>>>pos /// </summary> /// <param nam ...

  9. java右移>> 无符号右移>>>

    >>>是无符号右移,在高位补零 >>是带符号的右移,如果是正数则在高位补零,负数则补1 int a = -1; System.out.println(a>>1 ...

随机推荐

  1. Ubuntu 16.04设置Redis为开机自动启动服务

    继上一篇文章http://www.cnblogs.com/EasonJim/p/7599941.html安装好Redis后,假设文件已经安装到/usr/local/redis目录下.假设我安装的版本为 ...

  2. mybatis resultmap标签type属性什么意思

    mybatis resultmap标签type属性什么意思? :就表示被转换的对象啊,被转换成object的类型啊 <resultMap id="BaseResultMap" ...

  3. omnidazzle是mac的画笔工具

    先使用命令 brew cask install omnidazzle 试试,不行参考下面: http://macappstore.org/omnidazzle/

  4. 《Java设计模式》之状态模式

    状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式. 状态模式同意一个对象在其内部状态改变的时候改变其行为.这个对象看上去就像是改变了它 ...

  5. HDU 5319 Painter(枚举)

    Painter Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Su ...

  6. Unity3D &amp; C# 设计模式--23

     Unity3D & C#Design Patterns 23 design patterns. Creational Patterns 1. Abstract Factory抽象工厂 创 ...

  7. FunctionGraph无缝集成Express应用

    Express APP 作为一个Node.js开发者,相信大家都可能会使用Express框架,无论是构建后端服务,或是搭建一个前端的开发态服务器,Express都是一个很流行的选择.构建Express ...

  8. UVA 11927 - Games Are Important(sg函数)

    UVA 11927 - Games Are Important option=com_onlinejudge&Itemid=8&page=show_problem&catego ...

  9. gitlab smtp设置

    QQ exmail gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.exmail.qq.com ...

  10. ASP.NET面试点汇总

    1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何种业 ...