/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* rotate.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: maiboyer +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/11 14:08:55 by maiboyer #+# #+# */ /* Updated: 2023/12/11 14:13:32 by maiboyer ### ########.fr */ /* */ /* ************************************************************************** */ #include "me/num/u16.h" t_u16 u16_rotate_left(t_u16 value, t_usize by) { by &= sizeof(value) * 8 - 1; if (by == 0) return (value); return ((value << by) | (value >> (sizeof(value) * 8 - by))); } t_u16 u16_rotate_right(t_u16 value, t_usize by) { by &= sizeof(value) * 8 - 1; if (by == 0) return (value); return ((value >> by) | (value << (sizeof(value) * 8 - by))); }