2013-09-30 21 views
-1

我要計算這個數組:tab<<1與標籤字節C#轉移字節

數組我做的這幾行,但它似乎不起作用。我是我做錯了什麼?

byte[] T = new byte[16]; 


for (int i = 0; i < 16; i++) T[i] = (byte)(tab[i] << 1); 
+4

*「但它似乎不起作用」 *。什麼不行?你期望什麼,你會得到什麼? –

+2

第一行是無效的C#代碼。 – Stijn

+1

你究竟想在這裏做什麼?它看起來像要將數組中的每個元素左移一位,這是否正確? –

回答

0

如果你想結轉每個字節的MSB,你可以做這樣的事情:

var t = new byte[16]; 

byte carry = 0x0; 
for (var i = 15; i >=0 ; i--) 
{ 
    var newcarry = (byte) (t[i] & 0x80); 
    t[i] = (byte) (t[i] << 1 + carry); 
    carry = newcarry; 
} 
+0

謝謝!但我有一個問題:var newcarry =(byte)(t [i]&0x80);即:索引超出了數組的範圍。 – user2832642

+0

我輸入了i ++,但它是i--。修復答案... –

+0

是的,我看到它,但即使我寫我 - 錯誤仍然在這裏:s – user2832642