2013-01-04 75 views
-4

我有一个需要创建一个静态字节数组的小项目。如何在VB.NET中写入(字节)0xFF

我得到Java代码来创建Java中的固定字节数组,如下面的代码。

private static final byte[][] P = new byte[][] { 

    // p0 
    { 
     (byte) 0xA9, (byte) 0x67, (byte) 0xB3, (byte) 0xE8, 
     (byte) 0x04, (byte) 0xFD, (byte) 0xA3, (byte) 0x76 
    }, 

    // p1 
    { 
     (byte) 0x75, (byte) 0xF3, (byte) 0xC6, (byte) 0xF4, 
     (byte) 0xDB, (byte) 0x7B, (byte) 0xFB, (byte) 0xC8} 
    } 

如何在VB.NET中编写它?

+2

[?你尝试过什么(http://whathaveyoutried.com) – jlordo

回答

2

使用

Dim P(,) As Byte = New Byte(,) { _ 
    { &HA9, &H67, ... }, _ 
    { &H75, &HF3, ... }, _ 
    ... _ 
} 
+0

值得一提的是,VB.NET没有明确的写字节文字的方法。您所能做的最好的就是使用足够小的整数字面值,正如您已经显示的那样,并且相信它会正确地转换为字节。我想如果你想明确说出,你可以说'CByte(&HA9)',但这不是必需的。 –

+0

这是真的 - Java也没有,因此'(字节)'强制转换。幸运的是,在这种情况下,VB编译器知道范围限制,并且如果其中一个常量太大而无法放入“Byte”,将很高兴地鲤鱼。 – prprcupofcoffee

2

byte类型Java是一种符号类型,而Byte型VB.NET是无符号。对于VB,您需要使用SByte类型。此外,你的问题显示阵列,而不是一个2维数组的数组,所以在VB.NET最接近的等效是:

Private Shared ReadOnly P()() As SByte = _ 
    { _ 
    New SByte() { CSByte(&HA9), CSByte(&H67), CSByte(&HB3), CSByte(&HE8), CSByte(&H4), CSByte(&HFD), CSByte(&HA3), CSByte(&H76) }, _ 
    New SByte() { CSByte(&H75), CSByte(&HF3), CSByte(&HC6), CSByte(&HF4), CSByte(&HDB), CSByte(&H7B), CSByte(&HFB), CSByte(&HC8) } _ 
    } 
+0

+1好点! –

相关问题