没有按位运算符的rightrotate

Mar*_*tin 1 language-agnostic math graphics bit-manipulation hlsl

如何在不使用任何按位运算的情况下对32位整数实现rightrotate(和leftrotate)运算?

我需要这个,因为高级着色器语言(HLSL)不允许在数字上按位进行,我需要rightrotate用于我正在尝试实现的特定着色器.

sje*_*397 5

对于无符号整数,除以2,如果数字为奇数,则加2 ^ 32,右旋.对于左边,乘以2,如果高于2 ^ 32 - 1则加1.