【C#食谱】【风味小吃】菜单7:把其他进制的数转换为十进制

问题

你有一个包含二进制数、八进制数、十进制数或十六进制数的字符串。你需要把它转换为等价的数值并用十进制表示出来。

解决方法

要把一个其他进制的数转换为十进制数,只要用Convert类的被重载的静态方法Convert.ToInt32即可:


        string base2 = "11";
        
string base8 = "17";
        
string base10 = "110";
        
string base16 = "11FF";
        Console.WriteLine(
"Convert.ToInt32(base2, 2) = " +
                           Convert.ToInt32(base2, 
2));
        Console.WriteLine(
"Convert.ToInt32(base8, 8) = " +
                           Convert.ToInt32(base8, 
8));
        Console.WriteLine(
"Convert.ToInt32(base10, 10) = " +
                           Convert.ToInt32(base10, 
10));
        Console.WriteLine(
"Convert.ToInt32(base16, 16) = " +
                           Convert.ToInt32(base16, 
16));
这段代码产生这样的输出结果:
        Convert.ToInt32(base2, 2= 3
        Convert.ToInt32(base8, 
8= 15
        Convert.ToInt32(base10, 
10= 110 
        Convert.ToInt32(base16, 
16= 4607

讨论

静态方法Convert.ToInt32有两个参数,一个包含数字的字符串和一个表示该数字进制的整数。接着这个函数就会把这个数字字符串转换为十进制整数了。

Convert类的其他静态函数,比如ToByteToInt64ToInt16,也有类似的重载,即接受一个字符串类型的数字和一个表示该数字进制的整数。不过这些方法只能转换那些二进制、八进制、十进制或十六进制的数。它们只能把这些数转换为十进制的数。但是,任何类型的数值的ToString都可以转换成string类型。

汇聚杭州外卖:外卖汇
Tag标签: C#
posted @ 2008-01-23 23:59 随风逝去(叶进) 阅读(1682) 评论(6)  编辑 收藏 所属分类: A. C#.NETB. 个人翻译

  回复  引用  查看    
#1楼 2008-01-24 09:08 | 李华星      
挺实用
  回复  引用  查看    
#2楼 2008-01-24 09:17 | 队长      
提个问题,九进制如何来转?
  回复  引用  查看    
#3楼 2008-01-24 09:40 | Ariel Y.      
@队长

fromBase
Type: System..::.Int32

The base of the number in value, which must be 2, 8, 10, or 16.

  回复  引用  查看    
#4楼 [楼主]2008-01-24 10:19 | 随风逝去      
@队长
这个要自己写方法实现了。C#本身没有这样的方法或类来实现!
  回复  引用    
#5楼 2008-01-24 12:38 | mini188 [未注册用户]
我实现过一个,可以参考:http://www.mini188.com/showtopic-37.aspx
  回复  引用    
#6楼 2008-01-24 16:02 | fsfsdsf [未注册用户]
这些东东也放首页???!!!
当博客园是“菜鸟园"了

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接:
 
Free Web Counter
Free Web Counter