base16、base32和base64转码原理

本文介绍了base16、base32和base64编码的基本概念、转码原理以及在数据传输中的作用。base64编码是一种用于将二进制数据转换为ASCII字符的方法,常用于HTTP协议、邮件等场景,以确保数据能正确传输。编码过程中,8位字节被拆分成6位块,并通过特定索引表映射为64个可见字符,编码后字符串通常会增长1/3。此外,还详细讲解了base64编码的填充规则,确保编码长度为24的倍数。
摘要由CSDN通过智能技术生成

base16、base32和base64,转码原理

基本概念

ASCII 是用128(2的8次方)个字符,对二进制数据进行编码的方式
base64编码是用64(2的6次方)个字符,对二进制数据进行编码的方式
base32就是用32(2的5次方)个字符,对二进制数据进行编码的方式
base16就是用16(2的4次方)个字符,对二进制数据进行编码的方式

基于base16编解码源码介绍

就是把二进制数据转成16进制,显示16进制的值就可以了
16进制一个字符是4位,正常一个字节是8位,切一半就转成16进制了。
所以,base16转码后空间扩大一倍,4位转成一个字符, 1个字节转成两个字符

#include <iostream>
using namespace std;
static const char BASE16_ENC_TAB[] = "0123456789ABCDEF";
//  '0' ~'9' =>  48~57  'A'~'F' = > 65~70
static const char BASE16_DEC_TAB[128] = {
   
    -1,                                 //0
    -1,-1,-1,-1,-1, -1,-1,-1,-1,-1,      //1-10
    -1,-1,-1,-1,-1, -1,-1,-1,-1,-1,      //11-20
    -1,-1,-1,-1,-1, -1,-1,-1,-
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值