UPC码(Universal Product Code)是最早大规模应用的条码,其特性是一种长度固定、连续性的条码,目前主要在美国和加拿大使用,由於其应用范围广泛,故又被称万用条码。

UPC码仅可用来表示数字,故其字码集为数字0~9。UPC码共有A、B、C、D、E等五种版本,各版本的UPC码格式与应用对象如表 所示。

表 UPC码的各种版本

版本

应用对象

格 式

UPC-A

通用商品

SXXXXX XXXXXC

UPC-B

医药卫生

SXXXXX XXXXXC

UPC-C

产业部门

XSXXXXX XXXXXCX

UPC-D

仓库批发

SXXXXX XXXXXCXX

UPC-E

商品短码

XXXXXX

注:S-系统码  X-资料码  C-检查码

??? 下面将再进一步介绍最常用的UPC标准码(UPC-A码)和UPC缩短码(UPC-E码)的结构与编码方式。

 

UPC-A码

 

一个UPC-A码的范例。


图 UPC-A码的结构

每个UPC-A码包括以下几个部分:

 

UPC-A码具有以下特点:

  1. 每个字码皆由7个模组组合成2线条2空白,其逻辑值可用7个二进制数字表示,例如逻辑值0001101代表数字1,逻辑值0为空白,1为线条,故数字1的UPC-A码为粗空白(000)-粗线条(11)-细空白(0)-细线条(1)。
     

  2. 从空白区开始共113个模组,每个模组长0.33mm,条码符号长度为37.29mm。
     

  3. 中间码两侧的资料码编码规则是不同的,左侧为奇,右侧为偶。奇表示线条的个数为奇数;偶表示线条的个数为偶数。左资料码与右资料码字码的逻辑值如表所示。

表UPC-A码左资料码与右资料码字码逻辑值对照表

 

 

左资料码(奇)

右资料码(偶)

字码

逻辑值

逻辑值

0

0

0001101

1110010

1

1

0011001

1100110

2

2

0010011

1101100

3

3

0111101

1000010

4

4

0100011

1011100

5

5

0110001

1001110

6

6

0101111

1010000

7

7

0111011

1000100

8

8

0110111

1001000

9

9

0001011

1110100

注: 0为空白,1为线条

 

  1. 起始码、终止码、中间码的线条高度长於数字码。
     

  2. 检查码的算法

从国别码开始自左至右取数,设UPC-A各码代号如下:

N1

N2

N3

N4

N5

N6

N7

N8

N9

N10

N11

C

则检查码之计算步骤如下:

C1 = N1+ N3+N5+N7+N9+N11

C2 = (N2+N4+N6+N8+N10)× 3

CC = (C1+C2) 取个位数

C (检查码) = 10 - CC  (若值为10,则取0)

UPC-E码

 

UPC-E是UPC-A码的简化型式,其编码方式是将UPC-A码整体压缩成短码,以方便使用,因此其编码形式须经由UPC-A码来转换。UPC-E由6位数码与左右护线组成,无中间线。6位数字码的排列为3奇3偶,其排列方法取决於检查码的值。UPC-E码只用於国别码为0的商品。其结构如图所示。


图 UPC-E码的结构

  1. 左护线:为辅助码,不具任何意义,仅供列印时作为识别之用,逻辑型态为010101,其中0代表细白,1代表细黑。
     

  2. 右护线:同UPC-A码,逻辑型态为101。
     

  3. 检查码:为UPC-A码原形的检查码,其作用为一导入值,并不属於资料码的一部份。
     

  4. 资料码:扣除第一码固定为0外,UPC-E实际参与编码的部份只有六码,其编码方式,视检查码的值来决定,如表 2.3所示。奇资料码与偶资料码的逻辑值如表所示。

表 UPC-E码资料码的排列方式

表 UPC-E码资料码的编码方式

 

 

奇资料码

偶资料码

字码

逻辑值

逻辑值

0

0

0001101

0100111

1

1

0011001

0110011

2

2

0010011

0011011

3

3

0111101

0100001

4

4

0100011

0011101

5

5

0110001

0111001

6

6

0101111

0000101

7

7

0111011

0010001

8

8

0110111

0001001

9

9

0001011

0010111

注: 0为空白,1为线条

第一节 UPC 码的更多相关文章

  1. 第四章 跨平台图像显示库——SDL 第一节 与SDL第一次亲密接触

    http://blog.csdn.net/visioncat/article/details/1596576 GCC for Win32 开发环境介绍(5) 第四章 跨平台图像显示库——SDL 第一节 ...

  2. 第一节:ASP.NET开发环境配置

    第一节:ASP.NET开发环境配置 什么是ASP.NET,学这个可以做什么,学习这些有什么内容? ASP.NET是微软公司推出的WEB开发技术. 2002年,推出第一个版本,先后推出ASP.NET2. ...

  3. 第一节,初识OpenCV3-图像的读、写、显、格式转化等

    之前一直在看深度学习,突然用到了对图像处理的东西,所以过来补充一下OpenCV基础. 就顺便从网上了买了一本OpenCV 3计算机视觉这本书,这本书比较薄,但是目前已经够我用了,在这里就记录一下我的学 ...

  4. centos mysql 实战 第一节课 安全加固 mysql安装

    centos mysql  实战  第一节课   安全加固  mysql安装 percona名字的由来=consultation 顾问+performance 性能=per  con  a mysql ...

  5. Java基础第一节.Java简介

    第一节 Java简介 Java是一个由Sun公司开发而成的新一代的编程语言. Java语言是对软件开发有深远影响.应用前景广泛.具有丰富的类库.继承了C++的传统(摈弃了某些不足)广泛使用的网络编程语 ...

  6. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  7. Monkeyrunner自动化测试由浅入深(第一节)

    (原版)Monkeyrunner自动化测试由浅入深(第一节) 博主原创,请勿转载 第一.相关软件和环境的配置 1.Android sdk下载和配置 2.java jdk下载和配置 第二.Monkeyr ...

  8. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第一节:HTTP协议数据采集

    首先欢迎您来到本书的第二境,本境,我们将全力打造一个实际生产环境可用的爬虫应用了.虽然只是刚开始,虽然路漫漫其修远,不过还是有点小鸡冻:P 本境打算针对几大派生类做进一步深耕,包括与应用的结合.对比它 ...

  9. 第一节:《线程安全和锁Synchronized概念》

    第一节:线程安全和锁Synchronized概念 一.进程与线程的概念 (1)在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单位都是进程. 在未配置 OS 的系统中,程序的执行方 ...

随机推荐

  1. Cocos2d-x:环境配置小节

    一.准备 须要下载下面内容. 1. vs2010 下载地址:http://download.microsoft.com/download/1/4/3/143B7583-6225-474F-88D5-5 ...

  2. 关于如何使用three.js的小教程<一>

    昨天看了看three.js这个东西,身为一个3D引擎,他还是非常强大的.官网上有个tutorial讲的不甚具体.http://aerotwist.com/tutorials/getting-start ...

  3. CTRL+A, CTRL+C, CTRL+V

    (http://leetcode.com/2011/01/ctrla-ctrlc-ctrlv.html) Imagine you have a special keyboard with the fo ...

  4. Android adb 命令图解

    做了这么长时间的开发与管理,在命令上总是自见则过,往往却忽视了在其命令上的分享过程,所以现在稍微有点时间就把 其命令的相关操作来简单的扫盲一番吧,也系统通过这种方式去授之以渔而不是鱼,好了,我以图解的 ...

  5. Java Socket编程 标准范例(多线程)

    链接地址:http://blog.csdn.net/benweizhu/article/details/6615542 服务器端(Server)非多线程 package com.zeph.server ...

  6. BZOJ 1489: [HNOI2009]双递增序( dp )

    dp(i, j)表示选第i个, 且当前序列长度为j, 另一个序列的最后一个元素的最小值...然后根据上一个是哪个序列选的讨论一下就行了...奇怪的dp... --------------------- ...

  7. JavaEE学习之类加载器

    类装载子系统 在JAVA虚拟机中,负责查找并装载类型的那部分被称为类装载子系统. JAVA虚拟机有两种类装载器:启动类装载器和用户自定义类装载器.前者是JAVA虚拟机实现的一部分,后者则是Java程序 ...

  8. Media Queries for Standard Devices

    /* Smartphones (portrait and landscape) ----------- */ @media only screen and (min-device-width : 32 ...

  9. PHP新闻系统开发流程

    PHP新闻系统开发流程一.系统总体设计 (一)系统功能描述和功能模块划分 (二)系统流程分析 (三)系统所用文件二.数据库设计 (一)创建数据库 (二)设计表结构三.新闻发布模块开发 (一)新闻首页 ...

  10. 10-C语言函数

    目录: 一.函数 二.return与exit关键字 三.递归与递推 回到顶部 一.函数 1 函数由函数名.返回值.形参.函数体组成. 函数的使用分三个步骤:声明.定义.调用 2 语法格式: 返回值类型 ...