Y = base64(X),其中X是整数 - 是Y字母数字?

时间:2011-02-20 01:00:06

标签: math encoding character-encoding base64

其他详情:

  • X是6位或更少的正整数。
  • X用左边填充零以保持宽度为6。

请解释你的答案:)

(这可能在Math网站上更好,但认为它涉及编程功能)

1 个答案:

答案 0 :(得分:3)

german Wikipedia article中的图片非常有用:

enter image description here

您会看到原始字节中的6个连续位生成Base64值。要生成+/(代码62和63),您需要位串111110111111,因此至少设置5个连续位。

但是,请查看0 ... 9

的ASCII代码
00110000
00110001
00110010
00110011
00110100
00110101
00110110
00110111
00111000
00111001

无论你如何连接其中的六个,设置的连续位数不会超过3个。因此,无法以这种方式生成包含+/的Base64字符串,Y将始终为字母数字。

编辑:事实上,您甚至可以将其他Base64值排除在000010C)之外,因此这会带来很好的后续问题/谜题,例如“64个值中有多少是可能吗?“。