我有一行用C#编写的代码,我需要转换为Vb.Net。
在C#中
我有这个块...
// Calculate number of 64K blocks
uint rowsPerBlock = _MAXBLOCK/widthLength;
uint blockSize = rowsPerBlock*widthLength;
uint blockCount;
ushort length;
uint remainder=dcSize;
稍后为长度变量分配一个值并用于其他计算
length = (ushort)((remainder < blockSize) ? remainder : blockSize);
if (length == remainder)
{
comp.WriteByte(0x01);
}
else
{
comp.WriteByte(0x00);
}
comp.Write(BitConverter.GetBytes(length), 0, 2);
// Write one's compliment of LEN
以上所有我已转换,但以下行除外。
comp.Write(BitConverter.GetBytes((ushort)~length), 0, 2);
这条线的正确转换是什么?
谢谢
答案 0 :(得分:5)
这将使用VB.Net中的Not
来执行按位否定:
comp.Write(BitConverter.GetBytes(CUShort(Not length)), 0, 2)
答案 1 :(得分:1)
您可以尝试使用此代码
Dim byteArray As Byte( ) = BitConverter.GetBytes( (CUShort)Not length)
comp.Write(byteArray , 0, 2);
Link BitConverter.GetBytes:http://msdn.microsoft.com/fr-fr/library/vstudio/fk3sts66.aspx#Y0
链接不是:http://msdn.microsoft.com/fr-fr/library/2cwcswt4%28v=vs.80%29.aspx