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

Copying specific data to particular position in another variable

我想从一个变量中复制一定数量的位到另一个变量中的特定位置 示例:我有 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;

我试过 运行 你的代码,它似乎工作正常。对于 testbyte = 64,我得到 var1 = 2097152.

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