Started from buttom go to the sky

This commit is contained in:
Raphaël 2024-04-28 19:59:01 +02:00
parent 96215449bd
commit f811e55dea
4781 changed files with 10121 additions and 1743 deletions

View file

@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* rotate.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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)));
}

View file

@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* rotate.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/11 14:08:55 by maiboyer #+# #+# */
/* Updated: 2023/12/11 14:13:32 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
#include "me/num/u32.h"
t_u32 u32_rotate_left(t_u32 value, t_usize by)
{
by &= sizeof(value) * 8 - 1;
if (by == 0)
return (value);
return ((value << by) | (value >> (sizeof(value) * 8 - by)));
}
t_u32 u32_rotate_right(t_u32 value, t_usize by)
{
by &= sizeof(value) * 8 - 1;
if (by == 0)
return (value);
return ((value >> by) | (value << (sizeof(value) * 8 - by)));
}

View file

@ -0,0 +1,57 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* from_bytes.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/11 14:30:56 by maiboyer #+# #+# */
/* Updated: 2023/12/11 19:09:52 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
#include "me/num/u64.h"
t_u64 u64_from_7bytes(t_u8 *msg, t_usize start, t_usize len)
{
t_usize i;
t_usize out;
t_u64 temp_val;
i = 0;
out = 0;
if (i + 3 < len)
{
temp_val = (t_u64)(msg[start + i]);
temp_val |= (t_u64)(msg[start + i + 1]) << (8 * 1);
temp_val |= (t_u64)(msg[start + i + 2]) << (8 * 2);
temp_val |= (t_u64)(msg[start + i + 3]) << (8 * 3);
out = temp_val;
i += 4;
}
if (i + 1 < len)
{
temp_val = ((t_u64)(msg[start + i + 1]) << (8 * 1)) | (t_u64)(msg[start \
+ i]);
out |= temp_val << (i * 8);
i += 2;
}
if (i++ < len)
out |= (t_u64)(msg[start + i - 1]) << ((i - 1) * 8);
return (out);
}
t_u64 u64_from_bytes(t_u8 *bytes, t_usize len)
{
t_u64 out;
t_usize i;
i = 0;
out = 0;
while (i < len && i < 8)
{
out |= ((t_u64)(bytes[i])) << (8 * i);
i++;
}
return (out);
}

View file

@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* rotate.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/11 14:08:55 by maiboyer #+# #+# */
/* Updated: 2023/12/11 14:24:16 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
#include "me/num/u64.h"
t_u64 u64_rotate_left(t_u64 value, t_usize by)
{
by &= sizeof(value) * 8 - 1;
if (by == 0)
return (value);
return ((value << by) | (value >> (sizeof(value) * 8 - by)));
}
t_u64 u64_rotate_right(t_u64 value, t_usize by)
{
by &= sizeof(value) * 8 - 1;
if (by == 0)
return (value);
return ((value >> by) | (value << (sizeof(value) * 8 - by)));
}

29
stdme/src/num/u8/rotate.c Normal file
View file

@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* rotate.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/11 14:08:55 by maiboyer #+# #+# */
/* Updated: 2023/12/11 14:13:32 by maiboyer ### ########.fr */
/* */
/* ************************************************************************** */
#include "me/num/u8.h"
t_u8 u8_rotate_left(t_u8 value, t_usize by)
{
by &= sizeof(value) * 8 - 1;
if (by == 0)
return (value);
return ((value << by) | (value >> (sizeof(value) * 8 - by)));
}
t_u8 u8_rotate_right(t_u8 value, t_usize by)
{
by &= sizeof(value) * 8 - 1;
if (by == 0)
return (value);
return ((value >> by) | (value << (sizeof(value) * 8 - by)));
}

View file

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