首先说下好久不见
今天在转换进制方面上遇到了麻烦。本来想将 'helloWorld'
这字符串转换成 二进制的ASCII码(当然是字符串),然后发现可能得自己写个进制转换的函数了。
于是我很懒又很笨,想找下有没有原生转化方法。找了半天自己摸索出来了
1234567891011121314151617181920212223242526272829303132333435363738var str = 'helloWorld';/* 字符串转成二进制形式的ASCII码 */function Str2Bin(str){ return Array.prototype.slice.apply(str).map(function (char){ return char.charCodeAt().toString(2); }).join('');}/* 截取二进制字符串,抽取出 width 位作为参数来调用函数func */function getBinCharsByWidth(func, str, width){ var binChar = str.substr(0, width); func(binChar); binChar && getBinCharsByWidth(func, str.slice(width), width);}/* 二进制字符串转字符串 */function Bin2Str(bin, width){ var get = { 'str': '', 'getStr': function (charCode){ this.str += String.fromCharCode(parseInt(charCode, 2)); } }; getBinCharsByWidth(get.getStr.bind(get), bin, width); return get.str;}Str2Bin(str);//1101000110010111011001101100110111110101111110010110111111011001100100Bin2Str(Str2Bin(str), 7);//helloWorld
好了我先说到这儿了,以后再来背锅……(其实是去吃饭,顺便祝我生日快乐^_^
各位饭后好,我回来了
String.prototype.charCodeAt
可以将字符转为ASCII码
String.fromCharCode
可以将十进制的ASCII码转为字符
(不算说好的进制吗,怎么是这个)
如果你看得懂代码,就能明白的, Number.prototype.toString
就是了
1234567891011121314var 二进制 = 2;var 八进制 = 8;var 十六进制 = 16;'A'.charCodeAt().toString(二进制); //1000001'A'.charCodeAt().toString(八进制); //101'A'.charCodeAt().toString(十六进制); //41(999).toString(二进制); //1111100111(999).toString(八进制); //1747(999).toString(十六进制); //3E7
好了,貌似补完了
...
按照12进制来算的话,我今天17岁了
...
蛋糕一年比一年难吃
...
说起来人生也过了 25% 了
...