Code: Console.WriteLine(sizeof(long)); long a = long.MaxValue; byte[] tmp = ASCIIEncoding.ASCII.GetBytes(a.ToString()); foreach (byte item in tmp2) { Console.Write(item + "; "); } Please help me: sizeof(long) is 8, but why does tmp have more than 8 elements.
Because the number in "a" has 19 digits. a.ToString() returns a string that is 19 bytes long, so tmp becomes 19 elements long too.