以下是一个将十进制数转换为二进制数的C#代码示例,包含了两种实现方式:使用内置方法和手动实现转换算法,同时添加了输入验证功能。
这个程序实现了两种将十进制数转换为二进制数的方法:
- 使用内置方法:利用C#提供的
Convert.ToString(decimalNumber, 2)
方法,这是最简单直接的方式,第二个参数2
指定了目标进制。 - 手动转换算法:实现了"除以2取余数"的经典转换算法:
- 处理特殊情况(0和负数)
- 循环将十进制数除以2,记录余数
- 将余数按逆序排列,得到二进制数
- 对于负数,在结果前添加负号
程序还包含了输入验证功能,确保用户输入的是有效的整数。运行程序后,只需输入一个十进制数,就会同时显示两种方法的转换结果,方便对比。
你可以通过修改代码来扩展功能,比如支持转换更大范围的数字(使用long
类型)或添加二进制数的补码表示等。
using System;class DecimalToBinaryConverter
{static void Main(){Console.WriteLine("十进制转二进制转换器");Console.WriteLine("---------------------");// 获取用户输入Console.Write("请输入一个十进制数: ");string input = Console.ReadLine();// 验证输入是否为有效的整数if (int.TryParse(input, out int decimalNumber)){// 方法1: 使用内置Convert类string binaryBuiltIn = Convert.ToString(decimalNumber, 2);Console.WriteLine($"\n使用内置方法转换结果: {binaryBuiltIn}");// 方法2: 手动实现转换算法string binaryManual = DecimalToBinary(decimalNumber);Console.WriteLine($"手动转换算法结果: {binaryManual}");}else{Console.WriteLine("输入无效,请输入一个有效的整数。");}Console.WriteLine("\n按任意键退出...");Console.ReadKey();}/// <summary>/// 手动将十进制数转换为二进制数/// </summary>/// <param name="decimalNumber">要转换的十进制数</param>/// <returns>二进制表示的字符串</returns>static string DecimalToBinary(int decimalNumber){// 处理特殊情况:0的二进制是0if (decimalNumber == 0)return "0";bool isNegative = decimalNumber < 0;// 处理负数,先转换其绝对值if (isNegative)decimalNumber = -decimalNumber;string binary = "";// 除以2取余数法while (decimalNumber > 0){int remainder = decimalNumber % 2;// 余数拼接到结果前面binary = remainder + binary;decimalNumber = decimalNumber / 2;}// 如果是负数,添加负号return isNegative ? $"-{binary}" : binary;}
}