remove \r
[extl.git] / extl / utility / bit_op.h
blob6c45d04b2024268bb34df71bc573a9a9aeec11a9
1 /* ///////////////////////////////////////////////////////////////////////
2 * File: bit_op.h
4 * Created: 09.02.06
5 * Updated: 09.02.06
7 * Brief: bit operators
9 * [<Home>]
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
13 #ifndef EXTL_UTILITY_BIT_OP_H
14 #define EXTL_UTILITY_BIT_OP_H
16 /*!\file bit_op.h
17 * \brief bit operators
20 /* ///////////////////////////////////////////////////////////////////////
21 * Includes
23 #include "prefix.h"
25 /* ///////////////////////////////////////////////////////////////////////
26 * Macros
28 #define EXTL_BIT_OP_GET_FROM_8(p, i, n) ((((e_byte_t*)(p))[(i) / 8] >> ((i) % 8)) & ~((~0) << ((n) % 8)))
29 #define EXTL_BIT_OP_GET_FROM_16(p, i, n) ((EXTL_BIT_OP_GET_FROM_8(p, i, ((n) % 8)) << 8) | (EXTL_BIT_OP_GET_FROM_8(&(((e_byte_t*)(p))[1]), (i) + 8, (n) - ((n) % 8))))
31 /* //////////////////////////////////////////////////////////////////// */
32 #endif /* EXTL_UTILITY_BIT_OP_H */
33 /* //////////////////////////////////////////////////////////////////// */