我正在尝试编写一个小型隐写术程序,但我正在努力学习基础知识(位操作)。
假设我有一个字符串变量
char s[];
一个3位字节数组
byte arr[3];
现在,作为一个例子,我想在这里做的是,逐个字节地执行所有操作,并执行以下操作:
这样做最简单的方法是什么?
答案 0 :(得分:1)
for (i = 0; i < ...; ++i) {
const byte b = s[i];
arr[0] = (arr[0] & ~7) | ((b >> 5) & 7);
arr[1] = (arr[1] & ~7) | ((b >> 2) & 7);
arr[2] = (arr[2] & ~3) | b & 3);
}