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位为止。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值