【发布时间】:2021-02-01 07:15:59
【问题描述】:
如何保存 int 值的第二个字节?比如说,我们有int a 和char c。
- 通过指针,我们可以得到变量
a的地址,就像char* pC = (char*)&a;一样,要从 int 中获取第二个字节并保存到 char 中,下一步该怎么做? - 使用面具应该是这样的
((a << 8) >> 24)。但为什么会这样?接下来要怎么做才能保存第二个字节?
非常感谢。
【问题讨论】:
-
你能分享完整的代码吗?我想我遇到了你的“问题”,但我不完全确定你为什么要问
-
第二位的值为
2。所以用2屏蔽以查看是否设置了第二位。如果你想在一个条件下使用它,记住所有非零都是“真”。 -
还记得endianness。如果您有一个指向一系列字节的指针,则“第二位”可能位于不同的位置。
-
@RoQuOTriX 基本上这是一个完整的任务。我分享了我正在考虑的代码。
-
任务当然完成了。但是你只提供了两个陈述,说某物是面具,然后问为什么?我可以给你一个你想要的代码。但我认为这不会帮助你理解“幕后”发生的事情。因此,我们希望帮助您逐步了解自己在做什么
标签: c++ pointers bit-manipulation