/// <summary>
/// 获取字符串的字节表示
/// </summary>
class OriginalBytes
{
const int mark = 0x80;
private Encoding encode = Encoding.Default;
/// <summary>
/// 指定解释字符串的编码
/// </summary>
public Encoding Encode
{
get { return encode; }
set { encode = value; }
}
/// <summary>
/// 计算输入字符串的字节表示
/// </summary>
/// <param name="input">字符串</param>
/// <returns>输入字符串的字节表示</returns>
public string ShowBytes(string input)
{
List<string> list = new List<string>();
byte[] bAry = encode.GetBytes(input);
for (int i = 0; i < bAry.Length; i++)
{
for (int k = 0; k < 8; k++)
{
int temp = (int)bAry[i] << k;
int result = (int)(temp & mark);
if (result == 128)
list.Add("1");
else
list.Add("0");
}
list.Add(" ");
}
return string.Join("", list.ToArray());
}
}
Encode属性指定要解释的编码
ShowBytes(string input)函数求输入字符串的字节表示.
调用代码示例如下:
class Program
{
static void Main(string[] args)
{
string input = "中国";
OriginalBytes obytes = new OriginalBytes();
Console.Write("<{0}>的字节表示为 : ",input);
Console.WriteLine(obytes.ShowBytes(input));
Console.WriteLine();
obytes.Encode = Encoding.UTF8;
Console.Write("<{0}>的字节表示为 : ", input);
Console.WriteLine(obytes.ShowBytes(input));
Console.WriteLine("Press and key to continute....");
Console.Read();
}
}