字节数组与16进制字符以及Base64

字节数组与16机制字符关系

JDK提供的算法,计算得到的结果一般是字节数组。
1字节=1Byte=8bit 字节数组经常需要 显式表达。
2的7次幂等于128 加上 符号位(+)

我们一般使用16进制(0-F)来表达,4bit可以表达16进制的值。
所以转化为16进制字符串的长度,是字节数组长度的2倍。

也就是2个16进制的字符,才能完整表达一个字节的值。

Base64
Base64 编码是基于64个字符 A-Z,a-z,0-9,+,/ 的编码方式,因为2的6次方正好为64,所以就用6bit就可以表示出64个字符。

字节数组转Base64时,就是用64进制来显式表达。
3个字节,24bit,正好可以表达Base64中4个字符。

所以长度大概是字节数组的1.3333倍。

1、要求被编码字符是 8bit 的,所以须在 ASCII 编码范围内,u0000-u00ff,不允许中文。
2、如果被编码字符长度不是3的倍数,则用0代替,对应的输出字符为 "="

譬如长度为32的字节数组,需要用一个0来补全至3的倍数。
所以转为Base64时,最后一个6bit,一定是6个0,最后一位一定是“=”

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值