我对C和按位操作都比较陌生,而且我在课堂上给予的作业有麻烦。大部分代码已经发给我了,但我一直在解决与按位操作有关的部分问题。一旦我弄清楚了这一部分,我就会变得金黄。我希望有人能帮助!隐写术程序中的按位操作(C)
这里是我的任务摘录:
您将需要使用8个字节的图像来隐藏一个字节的信息(请记住,只有封面图像的最低有效位可以被修改)。您将使用封面图像的16个字节的其余部分嵌入16位b.size(二进制数据的大小字段的两个最低有效字节),封面的下32个字节将用于嵌入文件扩展名 为有效载荷文件,然后您将使用8 * b.size字节来嵌入有效载荷(b.data)。
这是什么程序做的是图像的速记,我不得不修改使用来自我创建了一个文件中读取数据图像的最小显著位。就像我说的那样,所有的代码都已经写好了。我只是无法弄清楚如何修改LSB。任何帮助将不胜感激!!!
我必须使用重新格式化的最低有效位的功能如下:
byte getlsbs(byte *b);
void setlsbs(byte *b, byte b0);
这是我迄今为止尝试:
/* In main function */
b0 = getlsbs(&img.gray[0])
/* Passing arguments */
byte getlsbs(byte *b)
{
byte b0;
b0[0] = b >> 8;
return b0;
}
我老老实实在一个完全丧失。我一整晚都在为此工作,而且我还没有取得进展。
BTW:[速记](http://en.wikipedia.org/wiki/Stenography)// [隐写术(http://en.wikipedia.org/wiki/Steganography) - 请更正您的发帖 – Mat 2012-04-11 12:24:28
我道歉;我并不是想让它看起来像我试图为我完成它。我所尝试过的所有东西都失败了,因为我似乎无法理解按位运算。在大学生涯中,我从来没有必须和他们打交道。 – JamesClem 2012-04-11 12:29:52
然后发布您尝试的代码,以便人们可以解释您做错了什么。 – Mat 2012-04-11 12:32:58