2011-12-31 84 views
0

我有一个我想表示为位掩码的短整数。如何将位掩码转换为vb.net中的字节数组

我该如何获取该值并将其转换为大小为2的字节数组中的位掩码?

例如,假设我有短的int值3.我希望将其表示为二进制“100”(第三位的位置设置给出实际的十进制值“4”),我希望那用两个字节的数组表示。

所以另一个例子是值“12”。在二进制中,这将是“100000000000”(第12位位置集),其十进制值为2048.在两字节数组中,这意味着第一(高位)字节将是“1000”,第二字节低位)将是“00000000”(0)。

是否有一种简单的方法,无需编写一堆令人费解的代码来获取short int值,将其转换为位掩码并设置short int值位,然后将结果值存储为两个字节的数组?

回答

2

它应该是简单:

Dim bytes As Byte() 
    ReDim bytes(1) 

    Dim x As Integer = 12 

    x = x - 1 
    If x > 0 Then 
     If x > 8 Then 
      bytes(1) = 1 << (x - 8) 
     Else 
      bytes(0) = 1 << x 
     End If 
    End If 
+0

这肯定会工作。我只是觉得有一些更直接的做法,我不知道。 – GregH 2011-12-31 21:49:48

+0

我认为这是因为这个操作有点不寻常的性质而直接得到的(有一个值定义了打开位的位置,而不是更常见的将一个数转换为位掩码操作)。 – 2011-12-31 21:53:05

相关问题