String representation and numeric value is not same.
In your byte you have used numeric value.
Take a look at ASCII chart, ASCII char will tell you, 0 starts at 48(0x30), a-97(0x61), A-65(0x41)
In order to get ASCII value of zero from 0, you need to add 48(0x30) with 0
To get 0 from zero you need to subtract 48(0x30);
char [] c = { (char)48, (char)49, (char)50 };
String s = new string(c);
Console.WriteLine("First String : "+s);