2012-03-05 84 views
1

我想将两个4位整数(1,4,7 .....)存储到一个字节中。将两个整数存储在一个字节中

我有2整数a=0001b=1111,我喜欢把这个整数存储到内存中的一个单一字节。

任何人都可以帮助我吗?

+0

FYI 4位整数俗称为半字节(至少对我们这些老家伙) – Tod 2012-03-05 06:01:50

回答

6

您需要将其中一个按位移动四位,然后使用二进制OR。

unsigned char number = (a << 4) | b; 

而且让他们回来了,掩盖一个与1111b上,另移回:

a = number >> 4; 
b = number & 15; 
+1

我+1的答案,但我只是想指出,OP没有提供太多的信息,所以目前尚不清楚unsigned short是目标上的一个字节。 – Tod 2012-03-05 06:00:34

+0

好点。即使我们猜测他在使用什么,char也可能更正确。 – Rusty 2012-03-05 06:46:10

+0

15等于0xf(= dec:15 = bin:“1111”) – user3896501 2015-04-17 11:13:21

相关问题