B. Base64

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

在计算机中表示一个整数 有两种方法:

  • 使用二进制表示,最少花费 位。
  • 使用文本表示(如十六进制),最少花费 位。

容易发现使用文本表示数据的效率较低,但当我们只能传输文本数据(只能使用可显示的字符)的时候,如何最大化传输效率呢?

假定我们使用 ASCII 编码,可以发现浪费主要来自于每个可显示 ASCII 字符可以表示 种值(0x20~0x7e),我们却只用它表示 种值(十六进制),受此启发,我们引入了 Base64 表示法。其采用 进制,用 0-9a-zA-Z+/ 共 种字符来表示一位数字,这样,每一位数字(字符)实际能够表示 位二进制数据。

通常我们见到的数据都以字节( 位)为单位。因此,如果字节数不是 的倍数,就会导致总位数不被 整除。对于这种情况,我们在数据后面补空字节来使得字节总数是 的倍数,对于补一个空字节的情况,Base64 表示的最后一个数字是 ,但不用 A 而用 = 表示。对于两个空字节的情况,最后两个数字都是 ,同样都不用 A 而用 = 表示。

字符和数字的映射关系见下表:

下面给出一个维基百科上的例子:

容易发现,Base64 表示法不仅可以表示整数,也可以表示任意的数据,我们将给出一个仅由可显示 ASCII 字符(每位二进制数值范围为 0x21~0x7e,注意不含空格 0x20)构成的字符串,你需要给出其 Base64 表示。

输入格式

一行一个字符串,含义如题。

输出格式

一行一个字符串,表示答案。

样例

样例输入

Man

样例输出

TWFu

数据范围与提示

输入字符串长度不超过 1000。