2017-01-26 45 views
0

我有一些像11111111000000001010101011111111數據位。我必須分開前8位數據並顯示它們錯誤代碼。然後,在前8位之後,我必須先讀取一組8箇中的剩餘位,如正確的數據如何從大數據位中分離位?

我成功地將數據分成8位組並逐個讀取它們,但我無法將它們作爲錯誤代碼和正確的數據分開。

因爲我想在正確的數據,但不能對

我已存儲的數據比特的數據串,並通過列表的方法分離他們的錯誤數據進行一些操作。

欲輸出原樣

錯誤代碼11111111

正確的數據 -

00000000 
10101010 
.. 
.. 

我用於8.

組分離比特的代碼
string s = "1111111100000000101010101111111111101011000111011011000101011111000000011111000100000111101011101111111001011110010111101111001100001011000000101110001011001111"; 
Console.WriteLine("Packet length : "+ s.Length); 

List<string> yourStringList = new List<string>();   

for (i = 0; i < s.Length; i = i + 8) 
{ 
    yourStringList.Add(s.Substring(i, 8)); 
} 

foreach (string st in yourStringList) 
{ 
    Console.WriteLine("DATA :{0}", st);   
} 
+1

'yourStringList [0]'是錯誤代碼 –

回答

0

打印錯誤代碼先,然後數據:

Console.WriteLine("ERROR CODE :{0}", yourStringList[0]);  
foreach (string st in yourStringList.Skip(1)) 
{ 
    Console.WriteLine("DATA :{0}", st);   
} 

此外,考慮的情況下,如果你的字符串長度length % 8 != 0。在這種情況下,你應該從最後開始,並閱讀8個符號。

0

你可以這樣說:

static void Main(string[] args) 
     { 

      string remainingBits = "010011010100110101000101010011010100110101001101010011010100110101101111"; 
      List<string> octetCollection = new List<string>(); 
      for (int i = 0; i < remainingBits.Length/8; i++) 
      { 
       octetCollection.Add(remainingBits.Substring(i * 8, 8)); 
      } 

      foreach (var s in octetCollection) 
      { 
       //Do whatever action on each octet 
       Console.WriteLine(s); 
      } 
      Console.WriteLine("Count: " + octetCollection.Count.ToString()); 
      Console.ReadLine(); 
     }