我想要做的是从变量中存储的位,并基本上读取它们就好像它们在另一个变量中一样。
假设我有一个名为 temp 的int值10(二进制1010) 我想能够读出它作为一个bool数组,给我[0] = 1,[1] = 0,[2] = 1,[3] = 0等等。(我可能会得到很多事实上前面的0,由于int的大小,但是meh,这只是一个例子。)
我尝试制作所需类型的指针,将其指定给int的地址但没有成功。我也看了谷歌,但似乎我不知道这种做法的名称,因为我找不到任何相关的。
编辑:在伪代码中,我的目标看起来像这样。
variable _t_'s bytes are equal to 1001010101000111.
if the last 4 bytes are equal to 0111: do stuff.
if the first 4 bytes are equal to 0000: do some more stuff.
etc.
答案 0 :(得分:3)
答案 1 :(得分:1)
另一种方法是使用按位运算符:& |。例如:
#define FLAG_IS_ALIVE 0x1;
#define FLAG_IS_DANGEROUS 0x2;
#define FLAG_IS_TOUCHABLE 0x4;
#define FLAG_IS_FLUFFY 0x8;
#define FLAG_CAN_BARK 0x10;
...
int kittenFlags = FLAG_IS_ALIVE | FLAG_IS_FLUFFY;
int doggyFlags = FLAG_IS_ALIVE | FLAG_IS_DANGEROUS | FLAG_CAN_BARK;
int someFlags = ...;
if (someFlags & FLAG_IS_FLUFFY && !(someFlags & FLAG_IS_DANGEROUS))
{
stroke(); cuddle();
}