DatOut[i] = DatIn[i * 4] + (DatIn[i * 4 + 1] << 1) + (DatIn[i * 4 + 2] << 2) + (DatIn[i * 4 + 3] << 3);这后面循环左移一位,两位,三位是为什么
就是乘以2,乘以4,乘以8,二进制数中的每位数字乘以所在位的权重再累加,才能得到正确的十六进制值。
相当于:
DatOut[i] = DatIn[i * 4] + DatIn[i * 4 + 1]*2 + DatIn[i * 4 + 2]*4 + DatIn[i * 4 + 3]*8;