#include "bang.h" // Left-rotate a byte. u8 ROL1(u8 v, u8 d) { d %= 8; return v << d | v >> (8-d); } // Left-rotate a double. u16 ROLD(u16 v, u8 d) { d %= 16; return v << d | v >> (16-d); } // Right-rotate a byte. u8 ROR1(u8 v, u8 d) { d %= 8; return v << (8-d) | v >> d; } // Right-rotate a double. u16 RORD(u16 v, u8 d) { d %= 16; return v << (16-d) | v >> d; }