短期划分的方法是使用股息除以可以删除的质量数,依此类推,依此类推。通过短期删除,可以将十进制数量连续2次删除2获得多个剩余的数字。最后,剩余的数字从下到顶部排列以获取二进制数字。
示例:以对应于字符n的ASCII编码110作为示例。
其余数字从底部到顶部排列,并且对应于字符n编码110 rpm的ASCII编码为1101110。由于一个字节对应于8位(位),因此有必要将0到8 -bit构成0并获得01101110。可以获得其余字符。
根据功率,从右到左的二进制二进制数量,次数从0增加到7,碱数为次数。我们已经是二进制二进制二进制数量01101110 rpm 10 -proof作为示例:示例:$ $(01101110)_2 = 0 2^0 + 1 2^1 + 1 2^2 + 1 2^3 + 0 2^4 + 1 2^5 + 12^6 + 0 * 2^7 $ $ $ $
在二进制编号系统中,每个0或1有点(位,位),也称为存储单元,这是最小的数据存储单元。8BIT称为字节(字节)。
位移操作员是程序设计中的一种操作运算符。可以根据二进制转移位移操作员。根据翻译方向和填充数字规则,将其传输到三种类型:<<(左移)、>>(带来符号的正确移动)和>>>(未签名的右)。在基本的编码和解码过程中,它是正面的,因此仅使用它<<(左移)、>>(带来符号的正确移动)两个操作员。
这是具有操作或操作的计算机中的基本逻辑计算方法。
$ 2^6 = 64 $ $
BASE64编码是用8位(位)字节序列拆卸为4 6-bit(bit)字节(6位有效字节,左侧的两个始终是0。实际上,它也是0。相同。8位字节)后续序列,然后找到获得的子序列以找到base64的编码索引表,并将相应的字符缝合到新类型的代码中。
8位(位)序列的字节序列的拆分过程分为4 6-位(位)字节,如下图所示:
因为6和8的最大倍数为24,所以3 8位字节可以分为4 6个字节。0并化妆8位。如下所示:
补充后所需的存储单元为32,是原始24的4/3倍,这就是为什么基本64编码的大小是原因的4/3倍。
因为二进制的6位(位)为2,也就是说,二进制数(00000000-00111111)之间的64个二进制数为0-63。
因为我们得到的8位二进制数中的前两个始终为0,并且只有6个真实有效性位置,因此我们可以获得的二进制数量仅为2个。
基本64的编码索引表,字符使用“ A-Z,A-Z,0-9,+,/” 64个打印字符代表(0000000000-00111111)。
我该怎么办3个字节分为4个字节?
分析映射关系:ABC→XYZI。我们分析了从高到低位置的过程
通过上述映射关系,实现思想:
转动两个 - 两位二进制的6-位两位有效咬合,找到右BASE64字符
以HAO字符串为例,观察Base64编码的过程,并通过代码逻辑分析实现上述转换
第三个字符和第四个字符的算法分析是相同的
组织上述代码并扩展到多字符字符串
原始字符串的长度不是3,需要特殊处理
所有代码
反向派生,从每个4位有效位置的二进制数量巩固到3 8位二进制数字,以及根据ASCII编码的缝线字符串字符串的字符串字符串字符串字符串
分析映射关系xyzi-> abc
如果有用的'='来构成位置
组织代码后解码整个字符串
上述解码的核心是字符索引的映射和base64字符集。
可以看出,base64decodechars不会在ACCII编码表的索引中存储基本64编码表的相应字符的索引。
当base64编码和解码时,base64encoder class和base64decoder class in the sun.misc package in JDK中
Sun.misc软件包提供的base64编码解码功能不高,因此已删除1.8之后的JDK版本
Apache Commons编解码器具有base64的编码和解码函数。它将使用该套件下的base64类别。用法如下
1.引入依赖性
2.代码实现
与Sun.misc软件包和Apache Commons编解码器提供的BASE64编解码器方法相比,Java 8提供的基本64具有更好的效率。实际测试编码和解码速度,Java 8提供的base64至少比该速度快11倍套件,至少比提供的快3倍。
base64是一种数据编码方法,可用于简单加密。它可以通过更改base64编码映射顺序来形成自己独特的加密算法。
原始:https://juejin.cn/post/710042122864453255