以Karl Bielefeldt评论为基础:
你们可以建立char和禁地联盟,例如:
typedef union
{
unsigned char byte;
unsigned char b0 : 1;
unsigned char b1 : 1;
unsigned char b2 : 1;
unsigned char b3 : 1;
unsigned char b4 : 1;
unsigned char b5 : 1;
unsigned char b6 : 1;
unsigned char b7 : 1;
}TYPE_BYTE;
TYPE_BYTE sample_byte;
. ......在样本中分配一个价值,即:逐.b0,样本_byte.b1,等等。 指定借方的顺序是,执行取决于你的汇编者手册,以了解其如何实施借方。
Bitfields can also be created with larger int types.
Edit (2011-03-15):
假设你可能想用3-10基数的基数来读,并将3位数分成3个变量,这里是应该这样做的一些代码。 它是没有经过测试的,因此你可能需要做一些 t:
void split_base10(const unsigned int input, unsigned int *a, unsigned int *b, unsigned int *c)
{
unsigned int x = input;
*c = x%10;
x /= 10;
*b = x%10;
*a = x/10;
}
亲爱!