Java 从图像获取/设置位值
这个问题就是基于这个 有人能解释一下这些台词的含义吗:Java 从图像获取/设置位值,java,embed,decode,steganography,Java,Embed,Decode,Steganography,这个问题就是基于这个 有人能解释一下这些台词的含义吗: private int getBitValue(int n, int location) { int v = n & (int) Math.round(Math.pow(2, location)); return v==0?0:1; } 及 getBitValue只获取指定位的值(在特定位置上) setBitValue设置匹配特定位置上的位值 这些getter/setter方法通常用于图像处理,也就是说,
private int getBitValue(int n, int location) {
int v = n & (int) Math.round(Math.pow(2, location));
return v==0?0:1;
}
及
getBitValue只获取指定位的值(在特定位置上) setBitValue设置匹配特定位置上的位值 这些getter/setter方法通常用于图像处理,也就是说,如果您有一个musk,并且希望更改特定的位值
差不多没什么 getBitValue只获取指定位的值(在特定位置上)
int v = n & (int) Math.round(Math.pow(2, location));
setBitValue设置匹配特定位置上的位值
这些getter/setter方法通常用于图像处理,也就是说,如果您有一个musk,并且希望更改特定的位值
差不多没什么 getBitValue只获取指定位的值(在特定位置上)
int v = n & (int) Math.round(Math.pow(2, location));
setBitValue设置匹配特定位置上的位值
这些getter/setter方法通常用于图像处理,也就是说,如果您有一个musk,并且希望更改特定的位值
差不多没什么 getBitValue只获取指定位的值(在特定位置上)
int v = n & (int) Math.round(Math.pow(2, location));
setBitValue设置匹配特定位置上的位值
这些getter/setter方法通常用于图像处理,也就是说,如果您有一个musk,并且希望更改特定的位值
差不多没什么
int v = n & (int) Math.round(Math.pow(2, location));
Math.pow(2,位置)
将2提升到给定的功率。这将被舍入并转换为整数。在二进制中,如果location==0
,则为00000001;如果location==1
,则为00000010;如果location==2
,则为00000100;等等。(如果1,则更好。)
Math.pow(2,location)
将2提升到给定的幂。这是四舍五入并转换为整数。在二进制中,如果location==0
,这将是00000001;如果location==1
,这将是00000010;如果location==2
,这将是00000100。(如果1,则更好。)
Math.pow(2,location)
将2提升到给定的幂。这是四舍五入并转换为整数。在二进制中,如果location==0
,这将是00000001;如果location==1
,这将是00000010;如果location==2
,这将是00000100。(如果1,则更好。)
Math.pow(2,location)
将2提升到给定的幂。这将被舍入并转换为整数。在二进制中,如果location==0,这将是00000001;如果location==1,这将是00000010;如果location==2,这将是00000100,等等。(最好是1抱歉没有说清楚。我想知道这两种方法中每一行的含义,以及为什么setBitValue(int n,int location,int bit)
需要做getBitValue(n,location)
再次。抱歉没有说清楚。我想知道这两种方法中每一行的含义,以及为什么setBitValue(int n,int location,int bit)
需要做getBitValue(n,location);
再次。抱歉没有说清楚。我想知道这两种方法中每一行的含义,以及为什么setBitValue(int n,int location,int bit)
需要再做一次getBitValue(n,location);
很抱歉没有说清楚。我想知道这两种方法中每一行的含义,以及为什么setBitValue(int n,int location,int bit)
需要做getBitValue(n,location)
再次。这是一个非常清楚的解释。我需要回去再次查看代码,并尝试理解它。谢谢大家。为什么在方法中使用setBitValue(int n,int location,int bit)
需要再次执行getBitValue
,这次使用的是rgb值,但消息长度。@JarekHuang这正是他们实现它的方式。要设置位值,此算法获取当前位值,然后查看三种不同情况:(1)当前位值=期望值,不执行任何操作;(2)当前值为0,期望值为1;(3)当前值为1,期望值为0。有一些方法可以在不使用getBitValue
的情况下实现这一点:result=(n&~toggle)|((bit==1)?toggle:0)
。这是一个非常清楚的解释。我需要再次查看代码,并尝试理解它。谢谢大家。为什么使用setBitValue方法(int n,int location,int bit)
需要再次执行getBitValue
,这次使用的是rgb值,但消息长度。@JarekHuang这正是他们实现它的方式。要设置位值,此算法获取当前位值,然后查看三种不同情况:(1)当前位值=所需值,不执行任何操作;(2)当前值为0,期望值为1;(3)当前值为1,期望值为0。有几种方法可以实现这一点,而无需使用getBitValue
:result=(n&~toggle)|((bit==1)?toggle:0)
,例如。这是一个非常清楚的解释。我需要再回头看看代码,并试着理解它。谢谢大家。为什么在方法setBitValue(int n,int location,int bit)中
需要再次执行getBitValue
,这次使用的是rgb值,但消息长度。@JarekHuang这正是他们实现它的方式。要设置位值,此算法获取当前位值,然后查看三种不同情况:(1)当前位值=期望值,不执行任何操作;(2)当前值为0,期望值为1;(3)当前值为1,期望值为0。有一些方法可以在不使用getBitValue
的情况下实现这一点:result=(n&~toggle)|((bit==1)?toggle:0)
。这是一个非常清楚的解释。我需要再次查看代码,并尝试理解它。谢谢大家。为什么使用setBitValue方法(int n,int location,int bit)
需要再次执行getBitValue
,这一次使用的是rgb值,但使用的是消息长度。@JarekHuang这正是他们实现它的方式。要设置
if(bv == bit)
return n;
if(bv == 0 && bit == 1)
n |= toggle;
else if(bv == 1 && bit == 0)
n ^= toggle;