1)C#中的char是16位的2)BinaryReader 默认使用UTF-8编码。按照UTF-8的编码规则对于英文字母等UTF-8编码和ASCII码是相同的,占一个字节。当读入一个ASCII字符肯定是一个字节。将读入的ASCII赋值给char类型变量时扩展成16位;
char 是 16位的。见:http://msdn.microsoft.com/zh-cn/library/x9h8tsay.aspx