今天晚上在写一个程序,主要的内容是将字符进行等长、哈夫曼以及变长编码。
要编码,肯定就会产生一个问题——给定了数组的下标,如何直接将其转化为二进制编码呢?
我想,既然C#这么强大,肯定有直接的库函数完成这样的操作吧,于是便上网查阅资料,发现果然可以这样。
由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示
例如: 二进制: 1010 表示为 字符串:"1010"
1. 十进制转二进制字符串(d=10)
Console.WriteLine(Convert.ToString(d,2));
输出结果为:1010
2. 二进制字符串转十进制数
(注,这里需要二进制为字符串)
string bin = "1010";
Console.WriteLine(Convert.ToInt32(bin,2));
输出结果为: 10
3. 二进制字符串转十六进制数
(注,这里需要二进制为字符串)
string bin = "1010";
Console.WriteLine(string.Format("{0:x}",Convert.ToInt32(bin,2));
输出结果为:a
4. 十六进制转二进制字符串
Console.WriteLine(Convert.ToString(0xa,2));
输出结果为:1010
2. 十进制转十六进制字符串(d=10)
Console.WriteLine(Convert.ToString(d,16));
输出结果为:A
6.十六进制转十进制数
Console.WriteLine(Convert.ToString(0xa,10));
输出结果为:10