首页 > 解决方案 > 将位附加到 10 位整数的开头和结尾

问题描述

我正在使用的 SPI 设备需要在 10 位值的左侧附加 4 位,在右侧附加 2 位。

例如,假设您有一个 10 位的值:

0110100110 - or 422

我们要添加0110到左侧和00右侧。

所以结果是:

0110011010011000

我该怎么做?

标签: cbit-manipulation

解决方案


一种简单的方法是将位移动到所需的位置并使用 OR 运算符 (|) 组合这些位。

int num = 0b0110100110;    
int left_bits = 0b0110;
int right_bits = 0b00;

int result = (left_bits << 12) | (num << 2) | right_bits 

推荐阅读