Как выполнить циклический сдвиг битов вправо?
Я нашел этот код:
Код:
int shr(int a, int s)
{
return (a>>s) | (a<<32-s);
}
{
return (a>>s) | (a<<32-s);
}
Код:
static Byte FMoveBits(Byte a, Byte s)
{
return Convert.ToByte((a >> s%8) | ((a << (8 - s%8)) & 255));
}
{
return Convert.ToByte((a >> s%8) | ((a << (8 - s%8)) & 255));
}
(a>>s) | (a<<8-s)|0xFF
Код:
#include <limits.h>
typedef unsigned char byte;
byte shr(byte a, char i){
return (a >> i) | (a << (CHAR_BIT - i));
}
typedef unsigned char byte;
byte shr(byte a, char i){
return (a >> i) | (a << (CHAR_BIT - i));
}