問題是基於此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