A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

代码如下:
  1. static void Main(string[] args)
  2.         {
  3.             int num = 0;
  4.             Console.WriteLine("请输入一个十进制数字:");
  5.             while (true)
  6.             {
  7.                 try
  8.                 {
  9.                     num = Convert.ToInt32(Console.ReadLine());
  10.                     break;
  11.                 }
  12.                 catch
  13.                 {
  14.                     Console.Write("输入有误!请重新输入>");
  15.                 }
  16.             }
  17.             Console.WriteLine("这个数的二进制为:{0}", ToErjin(num));
  18.             Console.ReadKey();
  19.         }

  20.         /// <summary>
  21.         /// 将输入的数字转换为二进制
  22.         /// </summary>
  23.         /// <param name="number">接收用户输入数字</param>
  24.         /// <returns>返回一个二进制字符串</returns>
  25.         public static int ToErjin(int number)
  26.         {
  27.             int yushu;//余数
  28.             int rel = 1;//这里初始化为1,如果初始化为0,并且余数为0的话,将会出错
  29.             int shang = 1;//商初始化为1
  30.             while (shang != 0)
  31.             {
  32.                 shang = number / 2;
  33.                 yushu = number % 2;
  34.                 number = shang;
  35.                 rel += yushu;
  36.                 rel = rel * 10;//每循环一次,余数就*10
  37.             }
  38.             //反序输出结果
  39.             string Jieguo = rel.ToString();   //先转换为字符串类型        
  40.             string resultJieguo = "";//接收反序输出后的结果
  41.             //遍历字符串
  42.             for (int i = 0; i <Jieguo.Length; i++)
  43.             {
  44.                 //反序
  45.                 resultJieguo = Jieguo[i] + resultJieguo;
  46.             }
  47.             //在强制类型转换为int类型
  48.             int num1 = Convert.ToInt32(resultJieguo);
  49.             //由于刚刚初始化的时候rel = 1,所以反序后的结果会+1,这里要-1后返回
  50.             return num1-1;
  51.         }
复制代码

评分

参与人数 2技术分 +11 收起 理由
电脑大牛 + 10 很给力!
卖火柴 + 1 很给力!

查看全部评分

1 个回复

正序浏览
我用Java写的十进制转二进制
  1. import java.util.Scanner;

  2. public class Czw       
  3.         static long binary; // 定义一个变量用于存放二进制数
  4.         static int i = 0; // 定义一个计数器用于binaryMethod()方法
  5.         public static void main(String[] args) {
  6.                 Scanner scan = new Scanner(System.in);
  7.                 System.out.print("请输入十进制数:");
  8.                 long num = scan.nextLong();
  9.                 binaryMethod(num);
  10.                 System.out.println("二进制数为: " + binary);
  11.         }
  12.         public static void binaryMethod(long num) {
  13.                 if (num != 0) {
  14.                         binary = (long) (num % 2 * Math.pow(10, i++) + binary);
  15.                         binaryMethod(num / 2);
  16.                 }
  17.         }
  18. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马