Base32编码转换

本文介绍了Base16、Base32和Base64编码在网络传输中的作用,用于解决ASCII编码冲突问题。Base16编码将ASCII可打印字符编码为4位二进制,Base32使用32个字符编码,常用于文件系统,而Base64编码适用于网络传输,数据量增加相对较小。
摘要由CSDN通过智能技术生成

在网络传入字符串过程中,如果编码方式是基于ASCII,那么会造成什么问题?比如:url地址中存在"/"(如:www.csdn.net/nav/ai),字符串中编码中也存在"/",这样就会出现错误地址解析.为了防止这种情况的出现,出现了Base16,Base32,Base64编码方式.我们知道计算机传输的单位是字节,也就是8个比特位,按照一个字节编码的方式结果就有256种状态(每个比特位0或者1两种状态,8位就是2^{8}=256),ASCII编码是将8个比特位中最高位置为0,所以总共可表示128个字符(即2^{7}=128).为了避免冲突,去掉一些特殊字符,重新编码.例如Base16编码,编码后的字符只会在(0~9,A~F)中,Base32编码后字符就会在(A~Z, 2~7)中以及填充符"="中出现.

Base16编码

Base16编码就是将ASCII字符集中可打印的字符(数字0~9和字母A~F)对应的二进制字节数据进行编码,编码的方式:

1.将数据(根据ASCII编码,UTF-8编码等)转成对应的二进制数,不足8比特位高位补0.然后将所有的二进制全部串起来,4个二进制位为一组,转化成对应十进制数.

2.根据十进制数值找到Base16编码表里面对应的字符.Base16是4个比特位表示一个字符,所以原始是1个字节(8个比特位)刚好可以分成两组,也就是说原先如果使用ASCII编码后的一个字符,现在转化成两个字符.数据量是原先的2倍.

                                                                                        Base16编码表

案例:将"ILU"字符串,根据ASCII编码得到对应的二进制,将所有二进制串起来,然后按4个二进制位分割,转化成十进制数值,根据Base16编码表得到编码"494C55",编码后的数据是原先的2倍.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值