Something like this ought to do you;
static string bytes2bin( byte[] bytes )
{
StringBuilder buffer = new StringBuilder(bytes.Length*8) ;
foreach ( byte b in bytes )
{
buffer.Append(lookup[b]) ;
}
string binary = buffer.ToString() ;
return binary ;
}
static readonly string[] lookup = InitLookup() ;
private static string[] InitLookup()
{
string[] instance = new string[1+byte.MaxValue] ;
StringBuilder buffer = new StringBuilder("00000000") ;
for ( int i = 0 ; i < instance.Length ; ++i )
{
buffer[0] = (char)( '0' + ((i>>7)&1) ) ;
buffer[1] = (char)( '0' + ((i>>6)&1) ) ;
buffer[2] = (char)( '0' + ((i>>5)&1) ) ;
buffer[3] = (char)( '0' + ((i>>4)&1) ) ;
buffer[4] = (char)( '0' + ((i>>3)&1) ) ;
buffer[5] = (char)( '0' + ((i>>2)&1) ) ;
buffer[6] = (char)( '0' + ((i>>1)&1) ) ;
buffer[7] = (char)( '0' + ((i>>0)&1) ) ;
instance[i] = buffer.ToString() ;
}
return instance ;
}