Re: [問題] 想做一個10進制轉2進制的簡單計算機

作者: VVll (李奧納多皮卡丘)   2014-06-06 06:24:45
※ 引述《neo5277 (I am an agent of chaos)》之銘言:
: 各位好我剛開始練習寫程式
: 我想做一個轉換用計算機
: 藉由這個程式的建立來讓我理解,程式運作的跟設計的流程。
: 我在windows form 專案底下
: 使用了 兩個text box 還有label
: 也做了一些名稱上的改動。
: 看起來像這樣
:

: 但是我不道該如何開始寫程式碼(攤手)
: 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