我对 C 和按位运算都比较陌生,而且我在课堂上分配的作业遇到了麻烦。大部分代码已提供给我,但我一直在找出与按位运算有关的部分时遇到问题。一旦我弄清楚这部分,我会很高兴。我希望有人能帮忙!
以下是我的作业节选:
您将需要使用 8 个字节的图像来隐藏 1 个字节的信息(请记住,只能修改封面图像的 LSB)。您将使用封面图像的其余 16 个字节来嵌入 b.size 的 16 位(二进制数据的大小字段的两个最低有效字节),接下来的 32 个字节将用于嵌入文件扩展名对于有效负载文件,然后您将使用 8*b.size 字节来嵌入有效负载(b.data)。
这个程序正在做的是图像的速记,我必须使用我创建的文件中的数据修改读取的图像的最低有效位。就像我说的,所有的代码都已经写好了。我只是不知道如何修改 LSB。任何帮助将不胜感激!!!
我必须用于重新格式化 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;
}
老实说,我完全不知所措。我整晚都在做这件事,但我仍然几乎没有取得进展。