2014-11-05 51 views
0

可以说我有这个字节在二进制:f = 01010111,然后我会这样做:f < < 3所以我期待:10111000,在这一点上进出口有另一个字节,可以说另一个是10111001,我想附加它们,所以结果是1011110111001. Basiclly,我想要的是从第一个字节的最后三位得到第二个字节的交换。C - 组合一个字节的三个字节与一个字节

我不知道我该怎么做,你能帮我吗?

谢谢!

+0

你可以使用16位数字吗?你也应该查看一些按位教程,这个主题有很多材料。 – Treesrule14 2014-11-05 20:23:01

+1

我见过很多,但我找到的所有教程都非常基本,我收到的是一个文本(文本有数字,字符等),然后我将其更改为二进制文件,然后执行此操作,所以最后我认为是将成为一个真正的长链010101 ..... Im加密文本。 在字节使用我是一个“noobie”,所以我不知道我是否可以做到这一点哈哈哈。 – 2014-11-05 20:30:00

回答

1

这个怎么样?

uint8_t f = 0x57; // 0b01010111 
f <<= 3;   // now 10111000 
uint8_t g = 0xB9; // 0b10111001 
uint16_t out = (f << 5) | g; 
printf("0x%04X\n", out); 

> 0x17B9   // 0b1011110111001 

我不明白中间的<< 3,但我假设它是你的应用程序的一部分。

+0

Yhea是应用程序的一部分,这是完美的!谢谢!! – 2014-11-05 20:34:45

相关问题