我有一个 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;
这假设 newPart2
和 newPart3
都是例如unsigned int
及其右调整的新值。
关于c++ - 在 C 程序中解析 32 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692656/