c++ - 在 C 程序中解析 32 位整数

标签 c++ c

我有一个 32 位整数,分成这样的部分:

 --------------------------------------
 | Part1         | Part2    | Part 3  |
 --------------------------------------

第 1 部分高 16 位。 (第 2 部分 + 第 3 部分)= 低 16 位。

第 2 部分是 10 位,第 3 部分是 6 位

我需要有关如何在 C 程序中读取和更新第 1 部分、第 2 部分和第 3 部分的帮助。

最佳答案

给定一个具有上述格式的整数x,您可以像这样替换Part2:

x = (x & ~(0x3ff << 6)) | (newPart2 << 6);

和第 3 部分一样:

x = (x & ~0x3f) | newPart3;

这假设 newPart2newPart3 都是例如unsigned int 及其右调整的新值。

关于c++ - 在 C 程序中解析 32 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692656/

相关文章:

c - 如何用一个函数获取没有重复值的数组

c++ - 继承类型定义?

c++ - 对象 vector 的模板字符串表示

c++ - 应该如何在接收 shared_ptr 的类构造函数中初始化 weak_ptr?

c - 我如何在 GTK3 中改变 GtkDrawingArea 上的鼠标光标?

c - 包含循环 - 链接器或编译器错误?

c - 它是如何工作的 : a specific while-loop

c++ - Opengl-es 2.0中渲染三角形的问题

c++ - 在 GCC/C++ 下访问 Windows 注册表

c - 毕达哥拉斯三胞胎