c - 将位附加到 10 位整数的开头和结尾
问题描述
我正在使用的 SPI 设备需要在 10 位值的左侧附加 4 位,在右侧附加 2 位。
例如,假设您有一个 10 位的值:
0110100110 - or 422
我们要添加0110
到左侧和00
右侧。
所以结果是:
0110011010011000
我该怎么做?
解决方案
一种简单的方法是将位移动到所需的位置并使用 OR 运算符 (|) 组合这些位。
int num = 0b0110100110;
int left_bits = 0b0110;
int right_bits = 0b00;
int result = (left_bits << 12) | (num << 2) | right_bits
推荐阅读
- python - 在运行时替换 Python 类定义
- amazon-web-services - AWS Amplify 是对 Cognito 进行 SDK 调用的唯一方法吗?
- wordpress - 如何使用 Contact Form 7 - Dynamic Text Extension 获取自定义值
- python - 如何解析 URL 中的文本并将干净的文本放入 DataFrame 中?
- angular - Angular 7:“对象”类型上不存在属性“数据”
- python - 如何使用 os.scandir() 来取回空目录名和非空目录名
- javascript - JavaScript Accordion in a different element
- apache-kafka - Kafka Streams Materialization 是如何工作的?
- c# - 当 Razor 页面 DropDownListFor 在没有 JavaScript 的情况下更改时,我如何更新条目
- flutter - 从 TextField 中的共享首选项加载初始文本