base64编码

代码网址:http://www.cnblogs.com/hongru/archive/2012/01/14/2321397.html


1、拿到字符串(ASCII编码)
2、转换为10进制(对应ASCII编码表)
3、转换为2进制 8bit字节 (对应10进制,2进制编码表)
4、转换为2进制 6bit字节  (利用移位)
5、将6bit的2进制再转换为10进制(对应编码表)
6、将10进制的数字转换为BASE64编码(对照BASE64编码表)





底层实现原理就是

1、二进制8bit转换为6bit的时候分别需要

  1、第一个原来字符右移两位是第一个目标字符
  2、第一个原来自负剩下两位与0x03(这是十六进制的表示,转换成2进制是00000011)进行&操作,然后右移4位,在相或将右移四位的第二个原来字符,得到第二个目标字符
  3、此时第二个原来的字符剩余四位与0x0F(这是十六进制的表示,转换成2进制是00001111)进行&操作,相或右移两位的第三个原来字符,得到第三个目标字符
  4、此时第三个原来字符剩余六位,与0x3F(这是十六进制的表示,转换成2进制是00111111)进行&操作。得到第四个目标字符


2、在2进制8bit转换为2进制6bit的时候 看字符是不是4个一组,及24bit.如果不够则需要补0.补够24位为止。



以下是个人观点:
其实所有编码都是因为各个编码制造商不想用市面上现有的编码规则,然后自己制订了一套规范,只用读取字符串然后转换为二进制再根据他们的编码规则重新去规范字符串即可。说白了就是各种进制转换来转换去


猜你喜欢

转载自936606539.iteye.com/blog/2318013