• 短网址计算


            string chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

            
    private void button1_Click(object sender, EventArgs e)
            {
                
    int i = int.Parse(textBox1.Text);
                textBox2.Text 
    = EncodeNum(i);
                textBox3.Text 
    = DecodeNum(textBox2.Text).ToString();
            }

            
    /// <summary>
            
    /// 转码
            
    /// </summary>
            
    /// <param name="integer"></param>
            
    /// <returns></returns>
            private string EncodeNum(int integer)
            {
                
    double number = integer;
                
    int hex = chars.Length;
                StringBuilder sb 
    = new StringBuilder();
                
    do
                {
                    
    //计算指数
                    int exp = -1;
                    
    double value = 0;
                    
    while (value < number)
                    {
                        exp
    ++;
                        value 
    = Math.Pow(hex, exp + 1);
                    }
                    
    //计算对应字符
                    double num = number / Math.Pow(hex, exp);
                    
    int index = Convert.ToInt32(Math.Floor(num));
                    sb.Append(chars.Substring(index, 
    1));
                    number 
    = number % Math.Pow(hex, exp);
                } 
    while (number > 0);


                
    return sb.ToString();
            }

            
    /// <summary>
            
    /// 解码
            
    /// </summary>
            
    /// <param name="s"></param>
            
    /// <returns></returns>
            private int DecodeNum(string s)
            {
                
    double x = 0;
                
    int hex = chars.Length;
                
    for (int i = 0; i < s.Length; i++)
                {
                    
    int exp = s.Length - 1 - i;
                    
    int num = chars.IndexOf(s.Substring(i, 1));
                    x 
    += num * Math.Pow(hex, exp);
                }

                
    return Convert.ToInt32(x);
            }
  • 相关阅读:
    SQL server 2005转换为SQL server 2000的方法
    C#异步编程(转)
    在存储过程中如何使用另一个存储过程返回的结果集
    开始研究开源GIS软件之旅(SharpMap和WorldWind)
    WorldWind学习系列一:顺利起航篇
    WorldWind学习系列二:擒贼先擒王篇1
    WebService安全访问(资料收集)
    平台调用:C# 使用非托管dll函数
    VS2008环境下C#对Excel的操作 [C#] (收集转载)
    WorldWind学习系列二:擒贼先擒王篇2
  • 原文地址:https://www.cnblogs.com/gateluck/p/1999546.html
Copyright © 2020-2023  润新知