作者VVll (J.)
看板C_Sharp
标题Re: [问题] 想做一个10进制转2进制的简单计算机
时间Fri Jun 6 06:24:45 2014
※ 引述《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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.240.239.100
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1402007090.A.AB3.html
1F:推 neo5277:!!!!高等解法 感谢你!!!!! 06/10 02:57
2F:→ killer1121:要转成除了2、8、10、16进制以外 这方法就没用了.. 06/12 02:32
3F:→ killer1121:阿~ 看错.. 不过2→10最快的方法还是Convert.To.. 06/12 02:47
4F:推 neo5277:恩 CONVERT 比较直接,但是大大这做法比较完备 06/13 11:24
5F:→ neo5277:思考比较完整,是我不足的地方。 06/13 11:24