我们想要将 12 位 UPC-A 转换为 8 位 UPC-E。您能告诉我哪种方法是最好的方法,而无需使用我自己的代码进行转换?
我有很多将 8 位 UCC-E 转换为 12 位 UPC-A 的公式,但不能反转。
从以下模式映射可以最清楚地看出在 UPC-A 和 UPC-E 表示之间转换 GTIN-12 标识符的算法:
SabN0000cdeX ⟺ SabcdeNX : 0≤N≤2
Sabc00000deX ⟺ Sabcde3X
Sabcd00000eX ⟺ Sabcde4X
Sabcde0000NX ⟺ SabcdeNX : 5≤N≤9
在上面的S
是数字系统,0 或 1,并且X
是校验位。如果 UPC-A 与模式不匹配,则无法将其转换为 UPC-E。
可以看出,每个UPC-A最多可能有四种有效的UPC-E表示:
001200000067⟺00100627⟺00120637⟺00120647⟺00120067。
执行从 UPC-A 到 UPC-E 的一种转换方法的伪代码如下所示:
Input: A valid twelve-digit UPC-A: Assigned to A[].
Output: PASS: Eight-digit UPC-E representing the UPC-A.
FAIL: Reason.
if A[0] != {0-1} then FAIL: Invalid number system.
if A[3] == {0-2} && A[4..7] == "0000" then PASS: A[0..2] . A[8..10] . A[3] . A[11]
if A[4..8] == "00000" then PASS: A[0..3] . A[9..10] . "3" . A[11]
if A[5..9] == "00000" then PASS: A[0..4] . A[10] . "4" . A[11]
if A[6..9] == "0000" && A[10] == {5-9} then PASS: A[0..5] . A[10] . A[11]
otherwise, FAIL: UPC-A not compatible with UPC-E.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)