最重要的一点

时间:2009-10-08 06:45:40

标签: c# hardware bit

我很久没有处理过针对硬件设备的编程,而且几乎忘记了所有的基础知识。

我有一个关于我应该在一个字节中发送什么的规范,每个位都是从最高有效位(bit7)到最低有效位(bit 0)定义的。我如何构建这个字节?从MSB到LSB,反之亦然?

3 个答案:

答案 0 :(得分:5)

如果这些位被'打包'(它们通常是),则位的顺序是本机顺序,0是LSB,7是MSB。比特通常不是一个一个地发送,而是作为字节(通常多于一个字节......)。

根据wikipedia,位排序有时可以是7-> 0,但这可能是极少数情况。

答案 1 :(得分:2)

如果您要同时写入整个字节,即进行并行传输而不是串行传输,则位的顺序无关紧要。

如果传输串行,那么你必须找出设备期望这些位的顺序,这是不可能从外面告诉的。

要从8位汇编一个字节,只需使用按位或“加”位,一次一个:

byte value = 0;

value |= (1 << n);  // 'n' is the index, with 0 as the LSB, of the bit to set.

答案 2 :(得分:1)

如果规范说MSB,那么建立它MSB。否则,如果规范说LSB,那么建立它LSB。否则,请询问更多信息。