Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中不使用编码器将数据从ASCII转换为Base 64_Python_Python 3.x_Base64_Ascii - Fatal编程技术网

在Python中不使用编码器将数据从ASCII转换为Base 64

在Python中不使用编码器将数据从ASCII转换为Base 64,python,python-3.x,base64,ascii,Python,Python 3.x,Base64,Ascii,我正在尝试创建两个程序,一个将数据从ASCII->integer转换为->Base 64,另一个将过程反转,以使用下面的示例测试如何执行此操作,其中我输入了“Cat”,并得出了0B10001000101111011001111。然而,我很难将它转换到Base64,我应该以RG9N结束,我不确定我应该添加什么来实现这个,我对Python和编程都是新手 基64编码器 整型 number=ord('C') 编号=ord('a')+(编号(6*3) 编号=编号-(代码>(6*2) 编号=编号-(代码>(

我正在尝试创建两个程序,一个将数据从ASCII->integer转换为->Base 64,另一个将过程反转,以使用下面的示例测试如何执行此操作,其中我输入了“Cat”,并得出了0B10001000101111011001111。然而,我很难将它转换到Base64,我应该以RG9N结束,我不确定我应该添加什么来实现这个,我对Python和编程都是新手

基64编码器 整型
number=ord('C')
编号=ord('a')+(编号(6*3)
编号=编号-(代码>(6*2)
编号=编号-(代码>(6*1)

number=number-(code首先,您需要4条打印语句,而不仅仅是一条-您创建的4条代码中的每一条都必须输出。您可能更喜欢
write
而不是
print
,因为
print
会为每个输出添加一个空格

其次,你不能对这些代码调用
chr
,因为它们会转换成无法打印的字符。你需要一个从代码号到字符的映射,你可以在


您使用的基本方法是将3个输入字符转换为4个输出字符。但是,在序列的末尾,您还需要一些特殊的大小写代码,其中剩下的字符不到3个,您需要在输出中插入
=
填充。

您可以看看它是如何在Python的标准libra中实现的ry.查看
base64.py
文件。很好,这很有意义,谢谢,尽管我不确定如何实现代码到字符的映射。它看起来像0@ShahobMousavi最简单的方法是建立一个列表,然后索引到其中。
number = ord('C')
number = ord('a') + (number << 8)
number = ord('t') + (number << 8)

print(bin(number))

#Base64 from integer

code = number  >> (6 * 3)
number = number - (code  << (6 * 3))
code = number >> (6 * 2)
number = number - (code  << (6 * 3))
code = number >> (6 * 1)
number = number - (code << (6 * 1))

print(chr(code))