【问题标题】:Add byte to array removes capitalized letters向数组添加字节删除大写字母
【发布时间】:2011-05-01 00:25:23
【问题描述】:

我尝试向数组中添加一个字节,如下所示:

messagedata.Add((byte)0xF0);

但是当我检查数组时,该项目看起来像 0xf0,但由于它将是一个 MIDI 消息,我发现它必须是大写 F。我该怎么做才能保持字母大写?

【问题讨论】:

    标签: c# hex


    【解决方案1】:

    不可能保持字母大写,因为字母不存储在数组中。数组中唯一存储的是一个数值,0xf0 只是将该值表示为文本的一种方式。

    您不需要保持字母大写。 MIDI 消息作为字节而不是文本发送,因此0xf00xF0 是相同值的文本表示。还有其他方法可以将相同的值表示为文本,如2400360%11110000,它们的含义相同。

    这段代码:

    messagedata.Add((byte)240);
    

    产生与您上面的代码完全相同的结果。可执行代码将是相同的,并且无法通过检查编译代码来确定使用了哪个代码。

    【讨论】:

    • 感谢您的快速回复。似乎问题出在其他问题上:当转换整数(例如 1)时,结果为 0x00,但我需要 0x31……有什么建议吗?
    • @internetmw:如果你将整数值1转换成一个字节,你将得到一个值为10x01的字节。也许您想将字符值'1' 转换为一个字节,从而给出值490x31
    【解决方案2】:

    0xF0 和 0xf0 是一回事。当您查看 0xf0(使用调试器或其他工具)时,该工具只是决定使用小写字母。 F和f都表示4位都等于1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多