这不是编程问题,而是了解什么是什么的问题。我不是CS专业,我想了解这3种格式之间的基本区别:

1)EBCDIC 2)无符号二进制数3)二进制编码的十进制

如果这不是一个真正的问题,我深表歉意,但是Google在向我解释这个问题时不是很有用

假设我有一串数字,例如“ 12890”。他们将代表什么

EBCDIC,无符号二进制数和BCD格式?

我是否可以使用python 2.6库将任何数字字符串简单地转换为这些格式之一?

例如,对于ebcdic的字符串,我正在执行

def encodeEbcdic(text):
    return text.decode('latin1').encode('cp037')

print encodeEbcdic('AGNS')


但是,我得到这个

最佳答案

EBCDIC是IBM字符编码。它用于编码文本。当然,数字可以出现在文本中,例如“ 1600 Pennsylvania Avenue”,因此也有数字代码。要将1600转换为EBCDIC,您需要找到EBCDIC表。然后,根据http://www.astrodigital.org/digital/ebcdic.html中的表查找1的代码,6的代码和0的代码(两次)。
0到9的EBCIDIC代码分别是F0到F9。这看起来很熟悉,但我不能说我真的记得。

一个无符号的二进制数就是这样。这是以二为底的数字。 (见下文。)

二进制编码的十进制(BCD)是一种旧格式,用于在数字计算机上存储数字的十进制表示形式。每个十进制数字都由其等效的二进制数表示。让我们以64为例。由于64仅是2的六次方,因此用二进制表示为1,后跟6 0:1000000。用二进制编码的十进制,我们用二进制写成六个-0110,将四个写成二进制-0100,这样BCD的表示形式是01100100。每个数字我们需要四个位,因为最大的十进制数字9等于1001。BCD在COBOL中得到了广泛的使用。如果这些天在其他任何地方都使用过,那么我对该应用程序并不熟悉。

编辑:我应该已经解释过EBCDIC中的F0,F1等是十六进制代码,因此F为1111,并且数字与BCD中的相同。因此,数字的EBCDIC与BCD相同,但是在每个数字之前加了1111。

关于python - 使用python进行数据编码和解码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31638575/

10-10 22:52