c#中十进制转化成二进制代码怎么写?

我这个是对计算器上的radioButton进行动作,就是点一下那个按钮,可以将十进制转换成二进制。... 我这个是对计算器上的radioButton进行动作,就是点一下那个按钮,可以将十进制转换成二进制。 展开
 我来答
xcl_ln
2010-06-25 · TA获得超过189个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:120万
展开全部

原来是这样啊?那你看看我现在改的这个可以吗?实现了2、8、10和16进制的转换,如果想要更简单的代码,可以留下联系方式,我发给你。

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace JinZhiTest

{

    public partial class Form1 : Form

    {

        private int CurrBase = 10;//当前进制,开始默认为10

        public Form1()

        {

            InitializeComponent();

        }

        //转换成二进制

        private void rdoEr_Click(object sender, EventArgs e)

        {

            this.JinZhiZhuHuan(CurrBase, 2);

        }

        //转换成八进制

        private void rdoBa_Click(object sender, EventArgs e)

        {

            this.JinZhiZhuHuan(CurrBase, 8);

        }

        //转换成十进制

        private void rdoShi_Click(object sender, EventArgs e)

        {

            this.JinZhiZhuHuan(CurrBase, 10);

        }

        //转换成十六进制

        private void rdoShiLiu_Click(object sender, EventArgs e)

        {

            this.JinZhiZhuHuan(CurrBase, 16);

        }

        /// <summary>

        /// 进制转换

        /// </summary>

        /// <param name="fromBase">原进制</param>

        /// <param name="toBase">目标进制</param>

        private void JinZhiZhuHuan(int fromBase, int toBase)

        {

            //得到文本框中数的十进制

            int num = Convert.ToInt32(this.textBox1.Text.Trim(), fromBase);

            //将数转换成目标进制的字符串形式并显示在文本框中

            this.textBox1.Text = Convert.ToString(num, toBase);

            //将目标进制保存为当前进制

            this.CurrBase = toBase;

        }

    }

}

=================================================

没太看明白楼主的意思,不知这样是否符合楼主的需求?

class Program

{

    static void Main(string[] args)

    {

        int shi;//用来保存十进制数

        Console.WriteLine("******** 十进制转二进制 ********\n");

        Console.Write("请输入十进制整数:");

        //从控制台读取十进制整数

        shi = Convert.ToInt32(Console.ReadLine());

        //将输入的十进制数转换为二进制字符串

        string er = Convert.ToString(shi, 2);

        //输出二进制字符串

        Console.WriteLine("二进制为:"+er);

        Console.ReadLine();

    }

}

zdy_servers
2010-06-24 · TA获得超过185个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:187万
展开全部
对于这种转换可以用数据结构中的Stack类实现
首先给你算法的步骤 理解了算法 才能真正掌握程序
取十进制数
取要转换的基数(这里为二进制)
循环
把十进制数与基数相除的余数压入栈
把十进制数与基数相除的商赋值给新的十进制数
当十进制数不等于0时继续循环

最后把栈中的数据出栈即得到二进制数据

代码
/// <summary>
/// 方法
/// </summary>
/// <param name="n">十进制</param>
/// <param name="b">转换基数(2进制)</param>
static void MulBase(int n, int b)
{

Stack Digits = new Stack();
do
{
Digits.Push(n % b);
n /= b;
} while (n != 0);

while (Digits.Count > 0)
{
Console.Write(Digits.Pop());
}
}

这是比较快的方法
同时还可以利用BitArray来实现 这种就是
string er = Convert.ToString(shi, 2);这样调用的原理
protected void ConvertBits(int val)
{
//掩码
int dispMask = 1 << 31;

//三十二位系统 形式如 00000000 00000000 00000000 00000000
StringBuilder bitBuffer = new StringBuilder(35);

for (int i = 1; i <= 32; i++)
{
if ((val & dispMask) == 0)
{
bitBuffer.Append("0");
}
else
{
bitBuffer.Append("1");
}
val <<= 1;
if ((i % 8) == 0)
{
bitBuffer.Append(" ");
}
}

Console.Write(bitBuffer.ToString());
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
braveboyx
2010-06-23 · TA获得超过139个赞
知道答主
回答量:57
采纳率:0%
帮助的人:39.6万
展开全部
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DecimalToBinary
{
class Program
{
static string DecimalToBinary(int N)
{
string result = "";
if (N / 2 > 0)
{
result = DecimalToBinary(N / 2) + (N % 2).ToString();
}
else
{
result = (N % 2).ToString();
}
return result;
}
static void Main(string[] args)
{
int N = 31;
Console.Write("Please your Decimal Number: ");
N = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{0}->{1}", N, DecimalToBinary(N));
Console.ReadKey();
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式