zoukankan      html  css  js  c++  java
  • 短网址计算

            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);
            }
  • 相关阅读:
    软件加载前显示加载中画面
    datatable用法
    arcsde安装
    dev gridcontrol (一)绑定值
    dev常用
    lookupedit用法(combox功能)
    关于NetBox2.8端口问题
    asp.net中,登录互斥的相关代码(不包含中途退出的处理)
    我老婆其人其事(一)
    判断文件是否为UTF8编码(以前收集的)
  • 原文地址:https://www.cnblogs.com/gateluck/p/1999546.html
Copyright © 2011-2022 走看看