代码如下:
- static void Main(string[] args)
- {
- int num = 0;
- Console.WriteLine("请输入一个十进制数字:");
- while (true)
- {
- try
- {
- num = Convert.ToInt32(Console.ReadLine());
- break;
- }
- catch
- {
- Console.Write("输入有误!请重新输入>");
- }
- }
- Console.WriteLine("这个数的二进制为:{0}", ToErjin(num));
- Console.ReadKey();
- }
- /// <summary>
- /// 将输入的数字转换为二进制
- /// </summary>
- /// <param name="number">接收用户输入数字</param>
- /// <returns>返回一个二进制字符串</returns>
- public static int ToErjin(int number)
- {
- int yushu;//余数
- int rel = 1;//这里初始化为1,如果初始化为0,并且余数为0的话,将会出错
- int shang = 1;//商初始化为1
- while (shang != 0)
- {
- shang = number / 2;
- yushu = number % 2;
- number = shang;
- rel += yushu;
- rel = rel * 10;//每循环一次,余数就*10
- }
- //反序输出结果
- string Jieguo = rel.ToString(); //先转换为字符串类型
- string resultJieguo = "";//接收反序输出后的结果
- //遍历字符串
- for (int i = 0; i <Jieguo.Length; i++)
- {
- //反序
- resultJieguo = Jieguo[i] + resultJieguo;
- }
- //在强制类型转换为int类型
- int num1 = Convert.ToInt32(resultJieguo);
- //由于刚刚初始化的时候rel = 1,所以反序后的结果会+1,这里要-1后返回
- return num1-1;
- }
复制代码
|