Started from buttom go to the sky
This commit is contained in:
parent
96215449bd
commit
f811e55dea
4781 changed files with 10121 additions and 1743 deletions
29
stdme/src/num/u16/rotate.c
Normal file
29
stdme/src/num/u16/rotate.c
Normal 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)));
|
||||
}
|
||||
29
stdme/src/num/u32/rotate.c
Normal file
29
stdme/src/num/u32/rotate.c
Normal 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)));
|
||||
}
|
||||
57
stdme/src/num/u64/from_bytes.c
Normal file
57
stdme/src/num/u64/from_bytes.c
Normal 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);
|
||||
}
|
||||
29
stdme/src/num/u64/rotate.c
Normal file
29
stdme/src/num/u64/rotate.c
Normal 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
29
stdme/src/num/u8/rotate.c
Normal 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)));
|
||||
}
|
||||
29
stdme/src/num/usize/rotate.c
Normal file
29
stdme/src/num/usize/rotate.c
Normal 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)));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue