C#中的十六进制变量



我代码段的一部分位于下面:

Byte[] blockdata = new Byte[16];
blockdata[0] = 0x12;
blockdata[1] = 0x13;
blockdata[2] = 0x14;

好吧。(0x12)中的12个是固定的。如果我想为其使用变量怎么办?示例:

int m = 12;
blockdata[0] = 0xm;

在上面,m应该是12。我该怎么做?

请帮我。谢谢。

实现目标的另一种方法可能是

int bInt = 12;
byte b = 0x1;
b = Convert.ToByte("0x" + bInt,16);

只需转换:

  • 首先要字符串
  • 然后从字符串将其视为十六进制表示

喜欢这个

int m = 12;
blockdata[0] = Convert.ToByte(m.ToString(), 16);

测试:

 // 18 == 0x12
Console.Write(String.Format("{0} == 0x{0:x}"), blockdata[0]);

表达式0x12是一个编译时常数,在运行时无法更改。十六进制12的值与18小数相同,因此您可以使用

blockdata[0] = 18

分配所需的值。无需使用六核格式使用常数初始化Byte类型的变量。

最新更新