2011-04-11 40 views
3

我尋找一些類,我可以用它來定義是3基地(三進制數)類:在.NET框架(.NET 4.0)定義基地3號

數有什麼我可以在使用.net框架或我需要寫點東西?

感謝您的任何幫助。

+0

你想轉換基地之間的數字? – 2011-04-11 10:45:30

+0

你在說整數或分數嗎?如果你在談論整數:你爲什麼要在內部表示爲base3而不是使用普通整數,並使用base 3解析/ ToString? – CodesInChaos 2011-04-11 10:46:06

+0

不,我需要定義一些表,每個表值可以是{0,1,2}之一,我需要創建表可以產生的所有值(表中的7列) – Yanshof 2011-04-11 10:46:41

回答

1

您可以分析使用 Convert.ToInt32(s,base)和使用 Convert.ToString(i,base)

或者,如果您輸入包括整數,你可以使用這樣的轉換爲字符串:

int CombineBase3(params int[] digits) 
{ 
    int result=0; 
    int multiplier; 
    Debug.Assert(digits.Length<=20);//Floor(32*log(2)/log(3)) 
    for(int i=0;i<digits.Length;i++) 
    { 
     Debug.Assert(digits[i]>=0 && digits[i]<3); 
     result+=multiplier*digits; 
     multiplier*=3; 
    } 
    return result; 
} 

或者你可以偷懶,只是使用byte[]並將數字保存在數組元素中,並忘記所有整數編碼的東西。

+2

基數必須是2,8,10或16 – V4Vendetta 2011-04-11 11:10:12

+0

謝謝,不知道。多麼奇怪的限制。 – CodesInChaos 2011-04-11 11:12:48

+0

它是有道理的,基地10可以理解是奇怪的。我很驚訝他們不支持base 64 – MattDavey 2011-04-11 13:22:36