d******e 发帖数: 2265 | 1 题目如下:给你一个max_x X max_y的矩阵内存比特流。每个元素是个bit,0或是1。要
求flip一个坐标为x,y的bit.函数接口如下:
void flipbit(int x, int y). 并存到一个byte里面。
有什么思路? | s*****y 发帖数: 897 | 2 could you give out an example?
Not quite get it yet.
【在 d******e 的大作中提到】 : 题目如下:给你一个max_x X max_y的矩阵内存比特流。每个元素是个bit,0或是1。要 : 求flip一个坐标为x,y的bit.函数接口如下: : void flipbit(int x, int y). 并存到一个byte里面。 : 有什么思路?
| d******e 发帖数: 2265 | 3 就是一副黑白点阵图,存成一个byte array,要求旋转90度,变化成新的byte array.有
啥奇技淫巧, 儿不需要bit互换? | g**********y 发帖数: 14569 | 4 函数接口看不懂
void flipbit(int x, int y)
根据你描述的,象是:
byte[][] flipbit(byte[][] array) | c*******n 发帖数: 63 | 5 flip不是1变成0,0变成1吗?不需要旋转
我觉得主要是下标和位运算的问题
如果数据结构是 char[] bits的话
典型的一个char是8bit, 假设 max_x = 32
那么 d[x][y] 就是 bits[8*x/max_x]的第 8*x%max_x + y 位反转
i.e.
w = 8*x/max_x
b = 8*x%max_x + y
if bits[w] & (1 << b ) == 1 then
bits[w] &= ~(1<
else
bits[w] |= (1<
【在 d******e 的大作中提到】 : 就是一副黑白点阵图,存成一个byte array,要求旋转90度,变化成新的byte array.有 : 啥奇技淫巧, 儿不需要bit互换?
|
|