-(BOOL)stateAtRow:(NSUInteger)row column:(NSUInteger)column{
const char *bitmapBytes=[self.bitmap bytes];//bitmap預先在裡面存了一些字節
char rowByte=bitmapBytes[row];//????
char result=(1<<column)&rowByte;//這裡位移是什麼意思???
if (result!=0) {
return YES;
}else{
return NO;
}
}
將1往左邊移動N位。
char result=(1<<column)&rowByte;
表示判斷rowByte第N位的byte是否是1.
int 1 表示成2進制是 00000000 00000000 00000000 00000001
1<<2,就變成 00000000 00000000 00000000 00000100
然後&rowByte,那麼如果rowByte的第3位是1,那麼返回00000000 00000000 00000000 00000100,如果是0,那麼返回0