c#进制转换

//十进制转二进制
Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2));
//十进制转八进制
Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8));
//十进制转十六进制
Console.WriteLine("十进制166的十六进制表示: "+Convert.ToString(166, 16));
    
//二进制转十进制
Console.WriteLine("二进制 111101 的十进制表示: "+Convert.ToInt32("111101", 2));
//八进制转十进制
Console.WriteLine("八进制 44 的十进制表示: "+Convert.ToInt32("44", 8));
//十六进制转十进制
Console.WriteLine("十六进制 CC的十进制表示: "+Convert.ToInt32("CC", 16)); 
 
### C# 中的进制转换方法 在 C# 编程中,可以利用 `Convert` 类的方法轻松实现不同进制之间的转换。以下是详细的说明和代码示例。 #### 使用 `Convert.ToInt32` 将字符串形式的数值从指定进制转换为十进制 此方法适用于将二进制、八进制或十六进制表示的字符串转换为对应的十进制整数。其语法如下: ```csharp int result = Convert.ToInt32(value, fromBase); ``` 其中: - `value` 是要转换的字符串。 - `fromBase` 表示原始数据的进制(例如 2 表示二进制,8 表示八进制,16 表示十六进制)。 **示例:** ```csharp string binaryString = "1010"; int decimalValue = Convert.ToInt32(binaryString, 2); // 结果为 10 Console.WriteLine(decimalValue); string octalString = "12"; decimalValue = Convert.ToInt32(octalString, 8); // 结果为 10 Console.WriteLine(decimalValue); string hexString = "A"; decimalValue = Convert.ToInt32(hexString, 16); // 结果为 10 Console.WriteLine(decimalValue); ``` [^1] --- #### 使用 `Convert.ToString` 将十进制整数转换为目标进制的字符串 该方法用于将一个十进制整数转换为其对应的目标进制表示。其语法如下: ```csharp string result = Convert.ToString(value, toBase); ``` 其中: - `value` 是待转换的十进制整数。 - `toBase` 表示目标进制(例如 2 表示二进制,8 表示八进制,16 表示十六进制)。 **示例:** ```csharp int decimalNumber = 10; // 转换为二进制 string binaryResult = Convert.ToString(decimalNumber, 2); // 结果为 "1010" Console.WriteLine(binaryResult); // 转换为八进制 string octalResult = Convert.ToString(decimalNumber, 8); // 结果为 "12" Console.WriteLine(octalResult); // 转换为十六进制 string hexResult = Convert.ToString(decimalNumber, 16); // 结果为 "a" Console.WriteLine(hexResult.ToUpper()); // 如果需要大写字母,则调用 ToUpper() 方法 ``` [^3] --- #### 实现任意两个进制间的间接转换 如果需要在非十进制之间进行直接转换(如二进制到八进制),可以通过中间的十进制作为桥梁完成转换过程。具体步骤如下: 1. 首先使用 `Convert.ToInt32` 将源进制的数据转换为十进制; 2. 然后再使用 `Convert.ToString` 将十进制的结果转换为目标进制。 **示例:** ```csharp string binaryInput = "10000"; // 步骤 1: 二进制 -> 十进制 int decimalIntermediate = Convert.ToInt32(binaryInput, 2); // 结果为 16 // 步骤 2: 十进制 -> 八进制 string octalOutput = Convert.ToString(decimalIntermediate, 8); // 结果为 "20" Console.WriteLine($"二进制 {binaryInput} 转为八进制 {octalOutput}"); ``` [^4] --- #### 大整数支持 (`BigInteger`) 当涉及超出标准整型范围的大数值时,可借助 `System.Numerics.BigInteger` 来扩展进制转换的功能。以下是一个例子展示如何处理超大数据量的情况: **示例:** ```csharp using System; using System.Numerics; class Program { static void Main() { string largeBinary = "1".PadLeft(100, '1'); // 构造一个长度为 100 的全 1 字符串 // 将二进制字符串转换为 BigInteger 对象 BigInteger bigDecimal = BigInteger.Parse(largeBinary, System.Globalization.NumberStyles.AllowHexSpecifier); // 输出结果 Console.WriteLine(bigDecimal.ToString("X")); // 显示为十六进制格式 } } ``` --- ### 总结 C# 提供了强大的工具来简化各种进制之间的相互转换操作。无论是基本类型的转换还是更复杂的场景下涉及到极大数值的操作,都能通过内置函数或者第三方库高效解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值