C# 进制转换

最近用到 进制间的转换,之前每次都从网上查,现在整理一下,以备查阅。上代码:

 1 private static void Test()
 2         {
 3             //十进制 转 二进制字符串 
 4             Console.WriteLine(Convert.ToString(69, 2));
 5 
 6             //十进制 转 十六进制字符串  
 7             //方式1:
 8             Console.WriteLine(Convert.ToString(69, 16));
 9             //方式2:
10             int number = 69;
11             String hex = number.ToString("X");
12 
13             //二进制字符串 转 十进制数
14             Console.WriteLine(Convert.ToInt32("11111111", 2));
15 
16             //二进制字符串 转 十六进制数 (其实还是先转十进制数)
17             Console.WriteLine(string.Format("{0:x}",Convert.ToInt32("11111111",2)));
18 
19             //十六进制字符串 转 十进制数
20             //方式1:
21             Console.WriteLine(Convert.ToInt32("FF", 16));
22             //方式2:
23             int.Parse("FF",System.Globalization.NumberStyles.AllowHexSpecifier);
24 
25             //十六进制转二进制字符串
26             Console.WriteLine(Convert.ToString(0xff, 2));
27         }

  由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示,比如:“1011”。

  有些时候需要在二进制字符串前面补0,来达到指定的长度,比如将"111" 转成8个长度的 "00000111" 字符串。提供以下方法进行转换:

 1         private static void Test2()
 2         {
 3             int i=10;
 4             //方法1:
 5             Console.WriteLine(i.ToString("D8"));
 6             //输出: 00000010
 7 
 8 
 9             //方法2:
10             Console.WriteLine(i.ToString("00000000"));
11             //输出: 00000010
12 
13 
14             //方法3:推荐 
15             Console.WriteLine(Convert.ToString(i, 2).PadLeft(8, '0'));
16             //输出: 00001010
17         }  

  呵呵,有不对的地方,请指出~~ :)

  

  

posted @ 2013-08-28 16:21  WaitingEver  阅读(666)  评论(1编辑  收藏  举报