// U can change the type by changing char to int
unsigned char rol(unsigned char value, unsigned char roll)
{
roll = roll % sizeof(char) * 8;
unsigned char mask_rolld = ~(0xFF >> roll);
unsigned char lmb = (mask_rolld & value) >> (sizeof(char) * 8 - roll);
return (value << roll) | lmb;
}