Gahing's blog Gahing's blog
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Gahing / francecil

To be best
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • AIGC

  • Git

  • Linux

  • 数据协议

  • 数据结构

  • 架构设计

  • 算法

  • 编程工具

  • 编程范式

  • 编解码

    • 二维码原理与编解码实践
    • 字符编码
    • 浅谈 base64、128 编码
      • base64
        • 疑问:
        • 拓展阅读
      • base128 Varints
  • 网络基础

  • 通用技术
  • 编解码
gahing
2022-05-06
目录

浅谈 base64、128 编码草稿

# base64

6 bit(2^6=64) 为一组进行分割

01110011 00010110 =》 011100 110001 0110|00 =

解码的时候按 8 bit 来解,剩下不足 8bit 的必然是自动补的 0

# 疑问:

  1. 为什么要加 pad ,保持 4 的倍数字符?

rfc 上特意这么定的。另外计算方便,保证可用直接按 4 个字符进行分割

# 拓展阅读

https://zhuanlan.zhihu.com/p/21250813

# base128 Varints

Protocol Buffers 所用的编码方式

使用一个或多个字节对「整数」进行序列化

低7位存数据,最高位(msb)表示是否为最后一个整数

300 (0b100101100) =》 1|0101100 00000010

通过某些规则去支持其他类型

wip

采用 ZigZag 编码来将 sint32 和 sint64 转换为 wire type 0

https://mp.weixin.qq.com/s/enDUynhZ1Pnzg_4xEjR21A

编辑 (opens new window)
上次更新: 2024/09/01, 23:56:56
字符编码
HTTP状态码

← 字符编码 HTTP状态码→

最近更新
01
浅谈代码质量与量化指标
08-27
02
快速理解 JS 装饰器
08-26
03
Vue 项目中的 data-v-xxx 是怎么生成的
09-19
更多文章>
Theme by Vdoing | Copyright © 2016-2024 Gahing | 闽ICP备19024221号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式