1 /* ///////////////////////////////////////////////////////////////////////
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
13 #ifndef EXTL_UTILITY_BIT_OP_H
14 #define EXTL_UTILITY_BIT_OP_H
17 * \brief bit operators
20 /* ///////////////////////////////////////////////////////////////////////
25 /* ///////////////////////////////////////////////////////////////////////
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 /* //////////////////////////////////////////////////////////////////// */