zoukankan      html  css  js  c++  java
  • javascript ASCII和Hex互转

    <script>
    
    var symbols = " !"#$%&'()*+,-./0123456789:;<=>?@";
    var loAZ = "abcdefghijklmnopqrstuvwxyz";
    symbols+= loAZ.toUpperCase();
    symbols+= "[\]^_`";
    symbols+= loAZ;
    symbols+= "{|}~";
    
    //Hex to ASCII
    function toAscii(str)
    {
        valueStr = str.toLowerCase();
        var hex = "0123456789abcdef";
        var text = "";
        var i=0;
    
        for( i=0; i<valueStr.length; i=i+2 )
        {
            var char1 = valueStr.charAt(i);
            if ( char1 == ':' )
            {
                i++;
                char1 = valueStr.charAt(i);
            }
            var char2 = valueStr.charAt(i+1);
            var num1 = hex.indexOf(char1);
            var num2 = hex.indexOf(char2);
            var value = num1 << 4;
            value = value | num2;
    
            var valueInt = parseInt(value);
            var symbolIndex = valueInt - 32;
            var ch = '?';
            if ( symbolIndex >= 0 && value <= 126 )
            {
                ch = symbols.charAt(symbolIndex)
            }
            text += ch;
        }
        return text;
    }
    //ASCII to Hex
    function toHex(str)
    {
        var valueStr = str;
        var hexChars = "0123456789abcdef";
        var text = "";
        for( i=0; i<valueStr.length; i++ )
        {
            var oneChar = valueStr.charAt(i);
            var asciiValue = symbols.indexOf(oneChar) + 32;
            var index1 = asciiValue % 16;
            var index2 = (asciiValue - index1)/16;
            if ( text != "" ) text += ":";
            text += hexChars.charAt(index2);
            text += hexChars.charAt(index1);
        }
        return text;
    }
    
    
    </script>
  • 相关阅读:
    (C/C++)区别:数组与指针,指针与引用
    C++中数组名和指针的区别联系
    C++引用的用处
    C++编写DLL动态链接库的步骤与实现方法
    C++_编写动态链接库
    C++ 模板
    C++ 信号处理
    C++ 多线程
    js事件冒泡
    js事件委托
  • 原文地址:https://www.cnblogs.com/sprinng/p/5166051.html
Copyright © 2011-2022 走看看