我正在寻找正确的解决方案来解码9条码格式的代码3。我在wikipedia上发现的内容如下:如何正确解码代码39
每个字符由九个元素组成:五个小节和四个空格。每个字符中的九个元素中的三个宽(二进制值1),六个元素较窄(二进制值0)。 - Wikipedia
我的问题如下:
- 通过 “元素” 这是否意味着一个吧?
- 一个Code 39数字的二进制输出是否有9或12个二进制数字?
我的假设如下:
- 没有一个校验位
- 我们面对的不是全ASCII码39
比方说,我们有以下条码:
让我们专注于开始字符*
。我能想到的三种不同的方法可能这种性格解码为二进制:
- 假设一个黑条是
1
和白条是0
1001 0110 1101
– 12位
- 假设细线是
0
,粗线是1
0100 1010 1
– 9位
- 假设本细线是
0
粗线是11
0110 0110 1101
– 12比特
哪个解码方法是正确的吗?如果他们都不是,那么请让我知道正确的方法是什么。
那么9位二进制序列会是什么?如果通过串行从设备发出条形码格式,则必须发送一系列高电压和低电压(二进制)。继续思考我的问题,代码39中编码的'*'的正确**二进制表示**是什么? – djthoms
'*'表示代码开始/结束序列(用于方向)。实际上编码在数据中的“*”会产生不同的元素序列。代码000000111 000001110 000001101 ... 111000000通过阅读器的固件映射为ASCII字符,并显示为ASCII输出 - 或理论上EBCDIC或您喜欢的任何其他代码。理论上可以将代码输出为“代码39” - 直接进行读取,但对于某些奇怪的问题,人们似乎更喜欢处理ASCII。 – Magoo