将特定数据复制到另一个变量中的特定位置

时间:2015-06-07 18:54:11

标签: c embedded

我想将一定数量的位从变量复制到另一个变量中的某个位置 示例:我有8位数据。我想提取该字节的高4位并将它们从位位置19转移到32位数据变量。如何才能实现最佳效果? 我试过跟随,但似乎没有工作。而不是19,我应该能够复制到零位置。

int bitPos=19;   // Position where the extracted data needs to be copied
int var1; //32 bit data
unsigned char testByte;
testByte&=0xF0;   // Lower nibbles not needed
testByte=testByte>>4; // Get only higher nibble
var1|=testByte<<bitPos;

1 个答案:

答案 0 :(得分:1)

我试图运行你的代码,它似乎正在运行。对于testbyte = 64,我得到了var1 = 2097152。

对于你的平台,可能是int不是32位,我想不出任何其他原因。