通常一般的程序员第一时间会想起用10进制转二进制,然后取某一位是否位1 实际项目中是不允许这么低效且低能的做法,那么我们可以直接使用 位与运算。来决定我们取的某一位偏移值是多少。也就是移动到二进制的某一位。 ::(真棒)

#ifndef SETBIT
#    define SETBIT(x, y)            (x |= (1 << y))
#endif

#ifndef GETBIT
#    define GETBIT(x, y)            ((x) >> (y) & 1)
#endif
if (0 == DBRead(dbnumber, start, length, static_cast<void*>(buffer)))
{
    return 0 != static_cast<int32_t>(GETBIT(buffer[0], offset));
}

标签: none

添加新评论