我有一个 uint32_t 如下:
uint32_t midiData=0x9FCC00;
我需要将这个 uint32_t 分成更小的部分,以便 9 成为它自己的实体,F 成为它自己的实体,CC 成为它自己的实体。如果您想知道我在做什么,我正在尝试分解 MIDI 消息的各个部分,以便在我的程序中更容易管理它们。
我找到了这个解决方案,但问题是我不知道如何将它应用到 CC 部分,而且我不确定这个方法是否适用于 C++。
这是我到目前为止所拥有的:
uint32_t midiData=0x9FCC00;
uint32_t status = 0x0FFFFF & midiData; // Retrieve 9
uint32_t channel = (0xF0FFFF & midiData)>>4; //Retrieve F
uint32_t note = (0xFF00FF & midiData) >> 8; //Retrieve CC
这对 C++ 是否正确?我问的原因是因为我以前从未使用过 C++,它使用 > 和 < 的语法总是让我感到困惑(因此我倾向于避免使用它)。