问题是基于此site。从图像获取/设置位值
有人能解释这些台词的意思:
private int getBitValue(int n, int location) {
int v = n & (int) Math.round(Math.pow(2, location));
return v==0?0:1;
}
和
private int setBitValue(int n, int location, int bit) {
int toggle = (int) Math.pow(2, location), bv = getBitValue(n, location);
if(bv == bit)
return n;
if(bv == 0 && bit == 1)
n |= toggle;
else if(bv == 1 && bit == 0)
n ^= toggle;
return n;
}
这是一个非常明确的解释。我需要回头再看代码,并试着理解它。谢谢你们。 –
为什么在'setBitValue(int n,int location,int bit)'方法中需要再次执行'getBitValue',而这次是使用rgb值但是消息长度。 –
@JarekHuang这就是他们实现它的方式。要设置位值,该算法获取当前位值,然后查看三种不同情况:(1)当前位值=期望值,不做任何事情; (2)当前值为0,期望= 1; (3)当前值为1,期望值= 0。有一些方法可以在不使用'getBitValue'的情况下完成此操作:'result =(n&〜toggle)| ((位== 1)?toggle:0)',例如。 – ajb