西门子PLC取字节大法(非进制转换)
通常一般的程序员第一时间会想起用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));
}