2013-01-04 106 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好點! –

相關問題