Java 如何在VB.NET中写入(字节)0xFF
我有一个小项目,需要创建一个静态字节数组 我用Java代码创建了一个固定的字节数组,如下所示Java 如何在VB.NET中写入(字节)0xFF,java,vb.net,porting,Java,Vb.net,Porting,我有一个小项目,需要创建一个静态字节数组 我用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
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中编写它?使用
Dim P(,) As Byte = New Byte(,) { _
{ &HA9, &H67, ... }, _
{ &H75, &HF3, ... }, _
... _
}
Java中的
byte
类型是有符号类型,而VB.NET中的byte
类型是无符号类型。对于VB,您需要使用SByte
类型。此外,您的问题显示的是数组的数组,而不是二维数组,因此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) } _
}
值得一提的是,VB.NET没有明确的方法来编写字节文字。您所能做的最好的事情就是使用一个足够小的整数文本,正如您所展示的,并相信它会正确地转换为字节。我想如果你想显式,你可以说
CByte(&HA9)
,但这不是必须的。这是真的-Java也是如此,因此(byte)
强制转换。幸运的是,在此上下文中,VB编译器知道范围限制,如果其中一个常量太大而无法放入字节中,它会很高兴地发出警告。