亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

就是在寫一個10進制與26進制互相轉換時,怎么都寫不對,該怎么辦?

就是在寫一個10進制與26進制互相轉換時,怎么都寫不對,該怎么辦?

C#
慕少森 2022-06-02 11:07:54
轉換方式類似Excel列序號這種表示方式。A=1,AA=27,BA = 26^2+1。26進制采用A-Z表示。求幫我寫兩個相互轉換的函數,我寫了半天都有各種問題,10進制轉26進制,直接繞死了。我已經找到一種方法了/// <summary>10進制轉26進制(字母)</summary>/// <param name="parameter"></param>/// <returns></returns>public static string NumberToLetter(int parameter){int parameter1 = parameter - 1;string[] radix = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };string result = "";int len = 0;int remainder = 0;len = parameter1 / 26;remainder = parameter1 % 26;result = radix[remainder];while (len > 0){remainder = (len - 1) % 26;len = len / 26;result = radix[remainder] + result;}return result;}
查看完整描述

1 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊


        char [] Cha=new char[26]{'Z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y'};        public string ConvTo26(int initialNum)        {            string Result="";            int Mid=initialNum ;            int Mod = 26;            int Num = 0;            bool EndCon = true;            if (Mid < 0)            {                Result += '-';                Mid *= -1;            }            while (EndCon)            {                Num=Mid / Mod;                if (Num > 0)                {                    Result += Cha[Num];                    Mid = Mid - Mod * Num;                }                else                {                    Result += Cha[Mid];                    EndCon = false;                }            }            return Result;        }         public int ConvTo10(string initialNum)        {            int Result = 0;            int Mod = 26;            char[] Mid = initialNum.ToCharArray();            int len = Mid.Length;            for (int i=0; i < len; i++)            {                if (Mid[len - 1 - i] == '-')                    Result *= -1;                else                {                    Result += (int)Math.Pow(Mod, i) * Array.IndexOf(Cha, Mid[len - 1 - i]);                }            }                return Result;        }//你試下吧

 


查看完整回答
反對 回復 2022-06-06
  • 1 回答
  • 0 關注
  • 139 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號