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);
            }
  • 相关阅读:
    actionscript中的sound类控制音频文件的操作示例
    Flash Media Server安装与使用入门教程(转)
    输出stage.displayState等于null原因
    flash播放音频显示波形
    flash camera类操作摄像头示例
    利用flash中的Video类播放flv格式文件,每次播放十秒左右就无故停止解决方法
    1046: 找不到类型,或者它不是编译时常数: Label 解决方案
    flash和js通信实例
    8.17Go之条件语句Switch
    8.18Go之变量作用域
  • 原文地址:https://www.cnblogs.com/gateluck/p/1999546.html
Copyright © 2011-2022 走看看