Wie kann ich Einzelne Bits aus Datei lesen

the_lorn

Mitglied
Ersteinmal ein Hallo an alle!

Ich bin C# Anfänger und möchte jetzt aus einer Datei die einzelnen bits auslesen.
Meine Frage ist jetzt: Wie mach ich das jetzt am besten?
Was wird mir bei einem byte zurückgegeben?
Wenn ich nur ein byte auslese bekomm ich "710" ausgegeben.
Mit 8 Bit aber sind die aber nicht darzustellen. Oder sind das Hex-Darstellungen?

Code:
byte[] buffer=new byte[size];
int size=10;

OpenFileDialog dladen = new OpenFileDialog();
			
if(dladen.ShowDialog()== DialogResult.OK)
{
	text=dladen.FileName;
	subs="";
	int i=0;
				
	FileInfo fi=new FileInfo(text);
          FileStream fs;
				
	fs=fi.Open(FileMode.Open);
	if(fs.Read(buffer,0,size)>0)
	{
	          foreach(byte b in buffer)
		{
			subs="";
			subs=string.Concat(subs,(int)b);
			Console.Write(subs);//b.ToString());
			if(subs=="00001")
			{
				//lies Bits in Byte?

			}//end if							
		}						
	}
Hab ich mein Problem jetzt einigermaßen verständlich gemacht?

Ich bedanke mich schon mal für eure Hilfe!
 
Hallo.

Wenn du ein Byte hast, von wo auch immer, und du dann überprüfungen vornehmen willst gibts folgende Möglichkeiten.

# Vergleichen ob es das selbe ist: Vergleiche das Byte mit dem entsprechenden Zahlenwert im Dezimalsystem.
Code:
BinaryReader reader = new BinaryReader(..);
byte b = reader.ReadByte();

if (b == 2) // ist b gleich (bin)10
{
    //...
}

# Vergleichen ob ein Bit gesetzt ist, oder nicht.
Wenn du wissen willst ob das Xte Bit in einem Byte gesetzt ist, verwendet man die logischen Bitoperatoren.
& - Und
| - Oder
^ - Exclusives Oder
Code:
byte b = reader.ReadByte();

if ((b & 2) = 2) // sind die bits von 10 in b gleich?
{
}
Dazu haben wir auch ein nettes Tutorial anhand eines Rechtesystems
Rechtesystem mit verschiedenen Benutzergruppen

MfG,
Alex
 
Das klingt ja total einfach. ;-)
Ich bedanke mich und werd das gleich mal ausprobieren.
Danke für den Link. Obwohl ich hier schon gesucht habe wurde ich nicht fündig. Anfänger halt.....:rolleyes:
 
Zurück