Re: [问题] 想做一个10进制转2进制的简单计算机

楼主: VVll (李奥纳多皮卡丘)   2014-06-06 06:24:45
※ 引述《neo5277 (I am an agent of chaos)》之铭言:
: 各位好我刚开始练习写程式
: 我想做一个转换用计算机
: 借由这个程式的建立来让我理解,程式运作的跟设计的流程。
: 我在windows form 专案底下
: 使用了 两个text box 还有label
: 也做了一些名称上的改动。
: 看起来像这样
: http://ppt.cc/gGP~
: 但是我不道该如何开始写程式码(摊手)
: GOOGLE了一些教学,我发现一个函数应用方法是。
: Convert.ToString(int1, 2);
: 不过这是直接用来转换,显示出来好像跟我的需求不太符合
: 所我思考的模式是
: 关于TEXT A \\左边
: 我是否应该,先宣告一个类别?
: 好比说叫做十进制,然后底下再帮他加一些方法?
: TEXT B\\右边
: 纯显示
: 转换的BUTTON
: 再引用一下左边宣告的类别 经过这个
: Convert.ToString(int1, 2); 把值送回到 TEXT B
: 显示出来呢?
: 这问题可能很蠢,我用关键字爬了一下版上的文好像没有人问过
: 小弟非本科出生,但是想学习程式设计。请各位前辈指点一二
: 还有需要加强的地方,我目前买的书有,visual C# 2008 从零开始
: 欧莱礼的 深入浅出 C# ver 3 以及之前推文推荐的 深入浅出 设计模式
: 目标主要还是,WPF应用,数据库统计应用,还有跟朋友计画RFID的东西。
: 数学也有认真的拿出来复习~~
: 希望再平常工作之于也可以转职成功~~
: 先感谢各位
做两个btn比较好 2->10 and 10->2
2->10的部分
string binary = "3345678";// 10101
Regex regex = new Regex(@"^[0-1]*$");//字串检查
if (regex.IsMatch(binary))
{
double decimal = 0;
for (int i = 0; i < binary.Length; i++)
{
double sqrt = binary.Length - i - 1;//2的N次方
int num = int.Parse(binary.Substring(i, 1));//拆字串
decimal += num * Math.Pow(2, sqrt);//二进制转换
}
Console.WriteLine(decimal);
}
else
Console.WriteLine("error binary");
Regex Class (System.Text.RegularExpressions)
http://readily-notes.blogspot.tw/2010/11/regular-expression-c-regex.html
作者: neo5277 (I am an agent of chaos)   2014-06-10 02:57:00
!!!!高等解法 感谢你!!!!!
作者: killer1121   2014-06-12 02:32:00
要转成除了2、8、10、16进制以外 这方法就没用了..阿~ 看错.. 不过2→10最快的方法还是Convert.To..
作者: neo5277 (I am an agent of chaos)   2014-06-13 11:24:00
恩 CONVERT 比较直接,但是大大这做法比较完备思考比较完整,是我不足的地方。

Links booklink

Contact Us: admin [ a t ] ucptt.com