2013-11-04 32 views
1

我需要用C#程序具有將任何數量(無論是整數或長的十進制)以任何基地(合理的)幫助數字轉換。需要幫助的小數到其他基地C#

該方案有幾個文本框(這是一個雙贏的形式)都開始空白。當用戶將數字(可能是一個小數)添加到所有更新的其中一個框中。默認的框是基地2,8,10,16,最後箱子有一個子框輸入您所選擇的鹼(如果用戶想例如轉換多個基站16到基座7

我不知道除Convert以外的任何其他作品可以進行基礎轉換

如果您不知道如何做到這一點,至少說明如何手動做到這一點會很棒!什麼是64.96(base十個)八進制?

這是一個個人項目,我設置的挑戰,然後出發去完成一個程序...

預先感謝任何^ h ELP!

編輯: 我將如何在C#這樣做嗎? int BaseX是我需要的基礎。 int preBaseX是我來自的基礎。 decimal outputNumber是我正在搜索的數字。 十進制inputNumber是我們開始的地方。 (也可以是650.3112或其他)

+2

您是否嘗試過使用Googleing進行此轉換的現有類?我發現這與快速搜索:http://stackoverflow.com/questions/923771/quickest-way-to-convert-a-base-10-number-to-any-base-in-net此外:http: //www.codeproject.com/Articles/16872/Number-base-conversion-class-in-C – Killingsworth

回答

2

要轉換到64.96八進制,首先決定你要多少過去的「八進制點」的地方展示。比方說,你想3.然後,由8^3或512

64.96×512 = 33259.52

丟棄乘以你數的小數部分。順便說一句,你的代表將會有多遠。你的回答將是0.52/512 = 0.001015625太小。現在

,爲轉換。 8反覆將您的號碼(33259),跟蹤餘數:

33259/8 = 4157 remainder 3 
4157/8 = 519 remainder 5 
519 /8 = 64 remainder 7 
64 /8 = 8 remainder 0 
8 /8 = 1 remainder 0 
1 /8 = 0 remainder 1 

現在,把你的剩餘物以相反的順序,並從末尾插入了「八進制點」 3:

100.753

+0

這真的很有幫助!快速的問題,「八點」是從前面三個還是後面三個? (你顯示100.753,你從前面還是後面計數?) – Masoniik

+0

3從後面。我說我現在意識到的「結局」是模棱兩可的,但我的意思是「結束」,如開始/結束。 – vacawama

+0

當然,這也適用於其他基地。對於基數16,餘數10到15將分別用十六進制數字「A」到「F」表示。 – vacawama