Quanta的自我学习 JS Base64转码相关知识小结(一)
由于工作需要,偶然间接触Base64转码(加密?!),于是觉得应该稍微了解以下这个东西,我觉得需要对一下内容进行了解:
1.UTF-8
2.ECMAscript的位运算符
既然问题点出来了,那么就来总结一下今天的自学记录
首先是感谢 tuhaitao的javscript base64 以下是原地址http://tuhaitao.iteye.com/blog/653244,感谢作者无私分享!!
1.转码UTF-8,何为UTF-8呢?它是一种针对Unicode的可变长度字符编码,简单说就是针对Unicode的一种转换(Transformation),为啥要转换捏?暂时还不太清除..............................
最主要的三点:
Unicode/UCS-4
|
bit数
|
UTF-8
|
byte数
|
备注
|
0000 ~007F
0000~0127
|
0~7
|
0XXX XXXX
|
1
| 大小写字母,数字0-9,标点符号等 |
0080 ~07FF
0128~2047
|
8~11
|
110X XXXX
10XX XXXX
|
2
| |
0800 ~FFFF
2048~66535
|
12~16
|
1110XXXX
10XX XXXX
10XX XXXX
|
3
|
基本定义范围:0~FFFF
|
2.ECMAscript位运算符
ECMAscript是标准话的脚本程序设计语言,这种语言在万维网上应用广泛使用
只是简单的记录一下ECMAscript的位运算符
位运算符是在属数字底层(即表示数字的32个数字)进行操作的
首先得先弄个二进制,提一句Javascript的进制转换方法
example:
var temp = 123;
temp.toString(2);(转换成二进制)
temp.toString(10);(转换成十进制)
temp.toString(16);(转换成十六进制)
现在进行位运算符的学习,详细可以查看,点击跳转到W3CSchool
重温整数
有符号整数使用31位表示整数的数值,用第32位表示符号,0表示正数,1表示负数
位运算 AND ( & )
第一个数字中的数位 | 第二个数字中的数位 | 结果 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
位运算 OR ( | )
第一个数字中的数位 | 第二个数字中的数位 | 结果 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
左移运算(<<) 有符号右移运算(>>) 无符号右移运算(>>>)
移几位,空缺的位置用0来补