• 字符转换 Unicode,进制转换


      charCodeAt()方法,此方法返回一个字符的 Unicode 值,该字符位于指定索引位置。

      fromCharCode()方法,此方法将 Unicode 码转换为与之对应的字符。

    字符转Unicode码:  

    var str="申晓亮";
    str.charCodeAt(0);//30003
    str.charCodeAt(1);//26195
    str.charCodeAt(2);//20142

    Unicode码转字符:

    String.fromCharCode(73,76,79,86,69,85,30003,26195,20142);//"ILOVEU申晓亮"

    js:数字转2,8,10,16进制

     var number = 18;    //注意数字格式,不加引号.                
     number.toString(2); //转成2进制   "10010"
     number.toString(8);//转成8进制    "22"
     number.toString(10);//转成10进制  "18"
     number.toString(16);//转成16进制  "12"

    js:16进制转换2,8,10进制

          

        var number = 0x11;    //注意数字格式,不加引号.                
        number.toString(2); //转成2进制   "10001"
        number.toString(8);//转成8进制    "21"
        number.toString(10);//转成10进制  "17"
        number.toString(16);//转成16进制  "11"

     1、字符串转换为十六进制
      主要使用 charCodeAt()方法,此方法返回一个字符的 Unicode 值,该字符位于指定索引位置。
      

     function stringToHex(str){
         var val="";
         for(var i = 0; i < str.length; i++){
           if(val == "")
             val = str.charCodeAt(i).toString(16);
           else
             val += "," + str.charCodeAt(i).toString(16);
         }
         return val;
       }
       //调用方法:
       var str = "abcde";
       str=stringToHex(str);
     

    2、十六进制转换为字符串(不是很明白)
      主要使用 fromCharCode()方法,此方法将 Unicode 码转换为与之对应的字符。

    function hexToString(str){
        var val="";
        var arr = str.split(","); 
        for(var  i = 0; i < arr.length; i++){
          val += arr[i].fromCharCode(i);
        }
        return val;
      }
      //调用方法:
      var str = "676865";
      stringToHex(str);

    3、用 parseInt() 方法转换

      parseInt(string, radix) 方法只能转换 String 类型,对其它类型都返回 NaN(非数字)。string 表示待转换的字符,radix 表示要转为的进制,值介于 2 ~ 36 之间。

    parseInt("bc",16); //表示把字符串bc转换为16进制,结果:188
    parseInt("10",8); //表示把字符串10转换为8进制,结果:8
    parseInt("10",2); //表示把字符串10转换为2进制,结果:2

     var str = "abcdeghijklmnopqrstuvw";
     console.log(stringToHex(str));//61,62,63,64,65,67,68,69,6a,6b,6c,6d,6e,6f,70,71,72,73,74,75,76,77
    
      str="http://www.qq.com";
      len=str.length;
      arr=[
      for(var i=0;i<len;i++){
        arr.push(str.charCodeAt(i).toString(16));
      }
    
      console.log(arr.join(","));//68,74,74,70,3a,2f,2f,77,77,77,2e,71,71,2e,63,6f,6d

    ==========================================================================

    另一种方法,还没有验证

    //字符串转16进制
    
    function strToHexCharCode(str) {
      if(str === "")
        return "";
      var hexCharCode = [];
      hexCharCode.push("0x"); 
      for(var i = 0; i < str.length; i++) {
        hexCharCode.push((str.charCodeAt(i)).toString(16));
      }
      return hexCharCode.join("");
    }
    
    //16进制转字符串
    
    function hexCharCodeToStr(hexCharCodeStr) {
      var trimedStr = hexCharCodeStr.trim();
      var rawStr = 
      trimedStr.substr(0,2).toLowerCase() === "0x"
      ? 
      trimedStr.substr(2) 
      : 
      trimedStr;
      var len = rawStr.length;
      if(len % 2 !== 0) {
        alert("Illegal Format ASCII Code!");
        return "";
      }
      var curCharCode;
      var resultStr = [];
      for(var i = 0; i < len;i = i + 2) {
        curCharCode = parseInt(rawStr.substr(i, 2), 16); // ASCII Code Value
        resultStr.push(String.fromCharCode(curCharCode));
      }
      return resultStr.join("");
    }
  • 相关阅读:
    [leetcode]Combination SumII
    NSum小结
    image 与 canvas 的相互转化
    $_SERVER 相关变量
    最近做的项目,总结一下。
    开始在博客园,写博客,先写点东西。
    Codeforces Round #584 C. Paint the Digits
    Codeforces Round #584 B. Koala and Lights
    Codeforces Round #584 A. Paint the Numbers
    HDU-2296-Ring(AC自动机, DP)
  • 原文地址:https://www.cnblogs.com/s-xl/p/7744835.html
Copyright © 2020-2023  润新知