2017-01-26 6 views
0

Ich habe einige Bits von Daten wie 11111111000000001010101011111111. Ich muss die ersten 8 Bits der Daten trennen und sie anzeigen Fehlercode. Und dann muss ich nach den ersten 8 Bits die restlichen Bits in einer Gruppe von 8 nacheinander als korrekte Daten lesen.Wie trennt man Bits von großen Datenbits?

Ich bin erfolgreich darin, die Daten in eine Gruppe von 8 Bits zu trennen und sie nacheinander zu lesen, aber ich bin nicht in der Lage, sie als Fehlercode und korrekte Daten zu trennen.

Wie möchte ich einige Operationen auf dem richtigen Daten durchzuführen, aber nicht auf die Fehlerdaten

ich die Datenbits als Folge von Daten gespeichert sind, und sie getrennt durch Listenverfahren.

Ich mag Ausgang as-

Fehlercode11111111

korrekte Daten -

00000000 
10101010 
.. 
.. 

Der Code i zum Trennen der Bits in einer Gruppe von 8 verwendet

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]' ist Fehlercode –

Antwort

0

Druckfehlercode zunächst und dann Daten:

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

Auch sei der Fall betrachtet, dass, wenn Ihre String-Länge ist length % 8 != 0. In diesem Fall sollten Sie am Ende beginnen und mit 8 Symbolen lesen.

0

Sie können es wie folgt tun:

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(); 
     } 
Verwandte Themen