三、UPC-E

UPC-E

1、概述

UPC-E码又称UPC缩短码,是UPC-A码的简化模式,UPC-E商品条码不含中间的分隔符,从左到右是有左侧空白区、起始字符、数据字符、终止字符、右侧空白区,以及供人识别的字符组成。

2、条码的组成

UPC-E有8位数字构成 , 1位系统字符 + 6位数据字符 + 1位检验字符。条码格式如下:
在这里插入图片描述
区域划分:

左侧空白区起始符数据符校验符终止符右侧空白区
9个模块 3个模块 42个模块 7个模块 6个模块 9个模块

代码划分:

系统字符 数据字符 校验码
1位数字 6位数字 1位数字

3、编码解析

  1. 左侧空白区
    位于条码的最左侧,其最小宽度为9个条形模块宽度
  2. 系统字符
    系统字符是不用条码符号表示的,系统字符不是 0 就是 1 。
  3. 起始符
    位于左侧空白区的右侧,表示信息开始的特殊符号,由3个条形模块组成,逻辑为101(1代表细黑,0代表细白)。
  4. 数据符
    数据符有6位数字信息,由42个条形模块组成,每个数字对应7个条形模块。数据符有A、B两类编码,通过校验码来选择数据符选择的编码逻辑。
  5. 校验码
    校验码也不用条码符号表示,主要功能是用于数据字符的编码逻辑选择。
  6. 终止符
    表示信息结束的特殊符号,由6个条形模块组成,逻辑为010101(1代表细黑,0代表细白)。
  7. 右侧空白区
    位于条码的最右侧,其最小宽度为9个条形模块宽度

编码逻辑:

校验码系统字符为 0系统字符为 1
0BBBAAAAAABBB
1BBABAAAABABB
2BBAABAAABBAB
3BBAAABAABBBA
4BABBAAABAABB
5BAABBAABBAAB
6BAAABBABBBAA
7BABABAABABAB
8BABAABABABBA
9BAABABABBABA

A、B类编码说明:

数字A类编码B类编码
000011010100111
100110010110011
200100110011011
301111010100001
401000110011101
501100010111001
601011110000101
701110110010001
801110110001001
900010110010111

Zero Compressed UPC-E

To allow the use of UPC barcodes on smaller packages where a full 12-digit barcode may not fit, a ‘zero-compressed’ version of UPC was developed called UPC-E. This symbology differs from UPC-A in that it only uses a 6-digit code, does not use middle guard bars, and the end bit pattern (E) becomes 010101. The way in which a 6-digit UPC-E relates to a 12-digit UPC-A is determined by the last (right-hand most) digit. With the manufacturer code represented by X’s, and product code by N’s then:

Last digitUPC-E equivalent isUPC-A equivalent is
0XXNNN00XX000-00NNN + check
1XXNNN10XX100-00NNN + check
2XXNNN20XX200-00NNN + check
3XXXNN30XXX00-000NN + check
4XXXXN40XXXX0-0000N + check
5XXXXX50XXXXX-00005 + check
6XXXXX60XXXXX-00006 + check
7XXXXX70XXXXX-00007 + check
8XXXXX80XXXXX-00008 + check
9XXXXX90XXXXX-00009 + check

校验位计算

1、先将 upc-e 转成 upc-a
2、使用upc-a校验位计算方法计算
例如:upc-a 码: 012587700457 (7是校验位)

//c1 = (0+2+8+7+0+5)×3=66;
//c2 = (1+5+7+0+4)=17;
c1 = (0+2+8+7+0+5)×3;
c2 = (1+5+7+0+4);
CC = (C1 + C2)%10;
C = 10 - CC;
if(10 == C)
	C = 0;

参考文件:https://download.csdn.net/download/qq_41382608/85907545

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值