字节:
    **

    类型/编译器 16位编译器 32位编译器 64位编译器
    void 0 0 0
    char 1 1 1
    char * 2 4 8
    short int 2 2 2
    int 2 4 4
    float 4 4 4
    double 8 8 8
    long 4 4 8
    long double 8 12 16
    long long 8 8 8

    C语言提供6个按位操作
    << 左移 右端补零,操作对象是 任意 int char 这里任意是指有无符号的意思。
    >> 右移 无符号数或者是正数不用考虑是左端补0, 负数看实现【一些实现补0,一些保留符号位,这种比较科学吧】
    ~ 按位取反 【一元运算符】
    & 按位与
    ^ 按位异或
    | 按位或

    1. #define lowByte(word) ((uint8_t)(word))
    2. #define highByte(word) ((uint8_t)((word) >> 8))
    3. #define bitRead(val, bit) (((val) >> (bit)) & 0x01)
    4. #define bitSet(val, bit) ((val) |= (1 << (bit)))
    5. #define bitClear(val, bit) ((val) &= ~(1 << (bit)))
    6. #define bitFlip(val, bit) ((val) ^= (1 << (bit)))