2012-12-19 95 views
2

我有一個開放源代碼項目,我通過一個字節數組下載來幫助我。我需要轉換將C按位語句轉換爲vb.net

int x = fgetc(inpFile); 
x |= fgetc(inputfile) <<8; 
x |= fgetc(inputfile) <<16; 
x |= fgetc(inputfile) <<24; 

到vb.net。我明白的fgetc和inpFile。不幸的是,我不知道C++,而我在按位操作方面很薄弱。

我試圖解釋的文件格式(我正在使用繡花格式的閱讀器)記錄不完整,並且指示我 「地址HEX 0008到0010 = 3字節指向...的下一個開頭塊的字節數組......「

我只是試圖從上面的示例代碼的這三個字節計算相同的值。

希望這是有道理

+2

讀取一個小端32位有符號整數 – Esailija

+0

爲了清楚起見,你讀3個字節還是4個?代碼示例是讀取4個字節,但您引用文檔說3? – Kratz

回答

3

我會去這個

dim x as integer = fgetc(inpFile) or 
        fgetc(inpFile) << 8 or 
        fgetc(inpFile) << 16 or 
        fgetc(inpFile) <<24 
+0

這適用於某些mod。我實際上已經將整個文件讀入一個字節數組中,所以不是使用輸入文件中的fgetc,而是使用cint和字節數組位置: –

+0

Dim pecstart As Integer = CInt(b(8))或(CInt( (9))<< 8)或(CInt(b(10))<< 16)或(CInt(b(11))<< 24) –

1

你可以用BinaryReader去,在​​自動讀取。

Dim reader As BinaryReader 
Dim x As Integer 

reader = New BinaryReader(File.Open(fileName, FileMode.Open)) 
x = reader.ReadInt32()