C# 2进制、8进制、10进制、16进制...各种进制间的转换(一) convert 类中的方法 您所在的位置:网站首页 十进制如何变成其他进制 C# 2进制、8进制、10进制、16进制...各种进制间的转换(一) convert 类中的方法

C# 2进制、8进制、10进制、16进制...各种进制间的转换(一) convert 类中的方法

2023-12-27 14:48| 来源: 网络整理| 查看: 265

 

  常见的进制方式,主要有二进制,八进制,十进制和十六进制,通用的转换方式是把非十进制的数据类型转换成十进制的,然后再转换成其他类型。

   在.NET Framework中,System.Convert 类中提供了较为全面的各种类型、数值之间的转换功能。其中的两个方法可以轻松的实现各种进制的数值间的转换

  一 、Convert 类中的转换方法

 

 

1、Convert.ToInt32(string value, int fromBase);   把不同进制数值的字符串转换为数字(十进制)

                       value 参数 要进行转换的数值字符串

                       fromBase参数 要转换成的进制格式,只能是2、8、10及16。 

Convert.ToInt32(”100111101″, 2); //二进制数 100111101 转成十进制 Convert.ToInt32(”76″, 8); //八进数 76 制转成十进制 Convert.ToInt32(”FF”, 16); // 16进数 FF 制转换成十进制

 

2、Convert.ToString(int value, int toBase);  可以把一个数字(十进制)转换为不同进制数值的字符串格式,

       value 参数 要进行转换的数字(十进制数)

                       toBase参数 要转换成的进制格式,只能是2、8、10及16。

 

Convert.ToString(69, 2); //十进制数 69 转二进制 Convert.ToString(69, 8); //十进制数 69 转八进制 Convert.ToString(69, 16);//十进制数 69 转十六进制

 

 

 二 、一个各进制自由转换的方法

 

 

进制转换的入口函数:

/// /// 进制转换 /// /// /// 原来的进制格式 /// 要转换成的进制格式 /// public string ConvertGenericBinary(string input, byte fromType, byte toType) { string output = input; switch (fromType) { case 2: output = ConvertGenericBinaryFromBinary(input,toType); break; case 8: output = ConvertGenericBinaryFromOctal(input,toType); break; case 10: output = ConvertGenericBinaryFromDecimal(input,toType); break ; case 16: output = ConvertGenericBinaryFromHexadecimal(input,toType); break; default: break; } return output; } 进制转换的入口函数

 

从二进制转换到其他格式:

/// /// 从二进制转换成其他进制 /// /// /// /// private string ConvertGenericBinaryFromBinary(string input, byte toType) { switch (toType) { case 8: //先转换成十进制然后转八进制 input = Convert.ToString(Convert.ToInt32(input, 2), 8); break; case 10: input = Convert.ToInt32(input, 2).ToString(); break; case 16: input = Convert.ToString(Convert.ToInt32(input, 2), 16); break; default: break; } return input; } 从二进制转换到其他格式 

 

从八进制转换成其他格式:

/// /// 从八进制转换成其他进制 /// /// /// /// private string ConvertGenericBinaryFromOctal(string input, byte toType) { switch (toType) { case 2: input = Convert.ToString(Convert.ToInt32(input, 8), 2); break; case 10: input = Convert.ToInt32(input, 8).ToString(); break; case 16: input = Convert.ToString(Convert.ToInt32(input, 8), 16); break; default: break; } return input; } 从八进制转换成其他格式

 

从十进制转换到其他格式:

/// /// 从十进制转换成其他进制 /// /// /// /// private string ConvertGenericBinaryFromDecimal(string input, int toType) { string output = ""; int intInput = Convert.ToInt32(input); switch (toType) { case 2: output = Convert.ToString(intInput, 2); break; case 8: output = Convert.ToString(intInput, 8); break; case 16: output = Convert.ToString(intInput, 16); break; default: output = input; break; } return output; } 从十进制转换到其他格式

 

从十六进制转换到其他格式:

/// /// 从十六进制转换成其他进制 /// /// /// /// private string ConvertGenericBinaryFromHexadecimal(string input, int toType) { switch (toType) { case 2: input = Convert.ToString(Convert.ToInt32(input, 16), 2); break; case 8: input = Convert.ToString(Convert.ToInt32(input, 16), 8); break; case 10: input = Convert.ToInt32(input, 16).ToString(); break; default: break; } return input; } 从十六进制转换到其他格式 

 

 

 三、各进制数的运算

 

 

  把各进制数转换成 十进制数进行计算,然后再转换成原类型。

举例一个二进制之间的加法:

/// /// 二进制之间的加法 /// /// /// /// public string AddBetweenBinary(string x, string y) { int intSum = Convert.ToInt32(x, 2) + Convert.ToInt32(y, 2); return Convert.ToString(intSum,2) ; }

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有