O Wallace Flint propôs um sistema de check -out automatizado em 1932 usando cartões perfurados. Bernard Silver e Norman Joseph Woodland, um estudante de pós-graduação do Drexel Institute of Technology, desenvolveram um código de estilo de boi e solicitaram a patente em 1949.
Na década de 1960 e início da década de 1970, as ferrovias da América do Norte experimentaram códigos de barras multicoloridos para rastrear vagões, mas esse sistema acabou sendo abandonado e substituído por um sistema baseado em rádio chamado Automatic Equipment Identification (AEI).
Em 1973, um grupo de associações comerciais da indústria de supermercados formou o Conselho de Código de Produtos Uniformes (UPCC) que, com a ajuda dos consultores Larry Russell e Tom Wilson, da McKinsey & Company, definiu o formato numérico que formava a base do produto uniforme Código. Empresas de tecnologia, incluindo Charegon, IBM, Litton-Zellweger, Pitney Bowes-Alpex, Plessey-Anker, RCA, Scanner Inc., Singer e Dymo Industries/Data Geral, apresentam propostas alternativas para representações de símbolos ao Conselho. [Citação necessária] O Comitê de Seleção de Símbolos finalmente optou por implementar a proposta da IBM projetada por George J. Laurer, mas com uma ligeira modificação na fonte na área legível humana. [Citação necessária]
O primeiro item marcado da UPC a ser digitalizado em um check-out de varejo foi um pacote de 10 (50 paus) da goma suculenta de mastigação de frutas de Wrigley, comprada no supermercado Marsh em Troy, Ohio, às 8:01 da manhã de 26 de junho de 1974 . A caixa registradora da NCR tocou 67 centavos. O carrinho de compras também continha outros itens com código de barras, mas a chiclete foi a primeira pegada no check -out. Um fac -símile do pacote de chiclete foi exibido no Museu de História Americano da Smithsonian Institution em Washington, DC.
Murray Eden foi consultor da equipe que criou o código de barras do Código do Produto Universal. Como presidente de um comitê de cientistas do Instituto de Tecnologia de Massachusetts, ele ajudou a "selecionar um símbolo que suportaria a inevitável corrida de tecnologia que estava à frente". Ele escolheu a fonte e teve a idéia de adicionar números ao fundo, que é um sistema seguro para falhas, caso o leitor de código de barras não esteja funcionando corretamente.
Por volta do final de 1969, a IBM no Research Triangle Park (RTP), na Carolina do Norte, designou George Laurer para determinar como fazer um scanner e etiqueta de supermercados. No final de 1970, Heard Baumeister forneceu equações para calcular caracteres por polegada alcançável por dois códigos de barras da IBM, Delta A e Delta B. Em fevereiro de 1971, Baumeister ingressou no Laurer.
O delta B comparou as larguras da barra com a largura do espaço para os bits de código. Isso foi extremamente sensível à tinta espalhada, onde muita tinta ou pressão causaria as duas bordas de uma barra se espalharem para fora e muito pouco para causar encolhimento. Para piorar, pois os bares espalham espaços encolher e vice -versa.
Em meados de 1971, William "Bill" Crouse inventou um novo código de barras chamado Delta C. alcançou quatro vezes os caracteres por polegada como Delta B.
A Delta C alcançou seu desempenho mais alto, usando apenas levando a liderança ou arrastando para as bordas que não foram afetadas por espalhamento uniforme de tinta. O código forneceu o melhor desempenho quando tinha um conjunto de caracteres definido com uma distância de referência fixa que mais abrangeu ou preferencialmente todo o personagem.
Em agosto de 1971, Crouse se juntou ao esforço do scanner. Depois de vários meses, eles não fizeram progresso. Eles estavam cientes do rótulo de olho do RCA Bull que poderia ser digitalizado com um simples scanner laser de linha reta, mas uma etiqueta legível era muito grande.
Embora a Litton Industries tenha proposto o símbolo dos olhos de um touro cortado ao meio para reduzir a área, ela ainda era muito grande e apresentou os mesmos problemas de impressão de manchas de tinta que o símbolo da RCA. A capacidade de redundância e verificação foram completamente removidas. Eles também estavam cientes das muitas propostas de todo o mundo, nenhuma das quais era viável.
Na primavera de 1972, Baumeister anunciou um avanço. Ele propôs um rótulo com barras que eram um pouco mais longas que a distância em todas as barras que precisavam ser lidas em um único passe. Essa etiqueta pode ser digitalizada com um simples scanner "X" apenas um pouco mais complexo que o scanner laser de linha reta. No dia seguinte, Baumeister sugeriu se o rótulo fosse dividido em duas metades, os comprimentos da barra poderiam ser cortados quase pela metade.
Essas duas propostas reduziram a área do olho do touro em um terço e depois um sexto. A imagem à direita mostra o rótulo proposto por Baumeister. Ele não especificou nenhum código de barras específico, pois isso foi bem compreendido. Exceto pela codificação de barras e dez dígitos que o rótulo da UPC hoje é sua proposta. Logo depois disso, Baumeister foi transferido para outra área do RTP.
Laurer começou a definir os detalhes do rótulo e escrever uma proposta. N.J. Woodland foi designado como planejador do projeto e ajudou Laurer a escrever sua proposta.
A primeira tentativa de Laurer com um código de barras usou Delta B. O tamanho da etiqueta resultante foi de cerca de quinze centímetros por três polegadas, o que era muito grande. Crouse sugeriu que Laurer usasse seu código de barras Delta C e fornecia uma cópia de sua patente que tinha um conjunto de caracteres alfanuméricos e regras para gerar outros alfabetos de tamanho. Isso reduziu o tamanho da etiqueta para cerca de 1,5 ”x 0,9”.
Mais tarde, Laurer pediu assistência ao Crouse na maneira como o scanner poderia detectar um rótulo. Juntos, eles definiram barras de guarda e uma definição de como detectar o rótulo. As barras de guarda também forneceram identificação para as barras de discriminação e treinamento de metade dos rótulos para os circuitos de limite do scanner. Laurer tinha uma definição completa de rótulo e começou a escrever sua proposta.
Anteriormente, Crouse tinha uma idéia para uma varinha simples usada como um anel e pulseira. Ele decidiu desenvolver essa varinha para fornecer uma demonstração do rótulo. [Citação necessária]
Em 1º de dezembro de 1972, a IBM apresentou a proposta de Laurer ao Comitê de Super Market em Rochester, Minnesota, o local onde a IBM desenvolveria o scanner. Durante a apresentação, Crouse fez uma demonstração de laboratório, onde leu rótulos de UPC com sua varinha. Além de ler rótulos regulares, ele leu a grande etiqueta central de duas páginas no livreto da proposta. Ele então se virou para uma página mostrando uma foto de itens rotulados em uma mesa. Os rótulos eram pequenos e falhos devido à resolução da foto impressa, mas a varinha leu muitos deles. Essa demonstração mostrou a robustez do código Celta C puro. A proposta foi aceita.
Um mês depois, 1 de janeiro de 1973 Crouse transferiu de volta para o grupo de tecnologia avançado da IBM, e Laurer permaneceu com a responsabilidade total pelo rótulo.
A Dymo Industries, fabricantes de dispositivos de impressão portáteis insistiam que o código fosse independente do personagem, [esclarecimento necessário] para que os dispositivos de impressão portáteis pudessem produzir o código de barras na loja se os itens não fossem codificados pelos fabricantes. A proposta de Dymo foi aceita pela IBM e incorporada na mais recente proposta da IBM.
Foi decidido que as duas metades do rótulo deveriam ter um conjunto diferente de caracteres numéricos. O conjunto de caracteres Laurer derivado da patente Delta C usou sete incrementos ou unidades imprimíveis, onde duas barras e dois espaços seriam impressos. Isso produziu vinte combinações de caracteres, mas havia dois pares que, quando lidos pelas regras da Delta C, renderam o mesmo código para o par.
Como dezoito caracteres não eram suficientes, Laurer tentou adicionar uma unidade ao conjunto de caracteres. Isso produziu vinte e seis caracteres delta C, o que poderia fornecer os dois conjuntos de caracteres decimais, mas também adicionou quatorze por cento à largura do rótulo e, portanto, na altura. Isso seria um aumento de trinta por cento na área ou um rótulo de 1,7 ”x1,03”. Laurer sentiu que isso não era aceitável.
Laurer retornou ao conjunto de personagens originais com vinte caracteres, mas quatro deles eram dois pares com a mesma leitura Delta C. Ele decidiu usá -los todos. Para distinguir entre os pares, ele media uma largura da barra em cada um dos pares para distingui -los um do outro. Para cada par, essas barras teriam uma ou duas unidades de largura.
Laurer não aplicou as equações de Baumeister a esse conjunto. Ele sentiu que apenas uma medição de largura da barra não seria muito séria. Como se viu, seria necessário mais de cinquenta por cento de aumento de largura e altura para um aumento de área de mais que o dobro. Mais tarde, Laurer admitiu que esses quatro caracteres em cada conjunto foram responsáveis pela maioria dos erros de leitura do scanner.
David Savir, matemático, recebeu a tarefa de provar que o símbolo poderia ser impresso e atender aos requisitos de confiabilidade e provavelmente não tinha conhecimento das equações de Baumeister. Ele e Laurer adicionaram mais dois dígitos aos dez para correção e detecção de erros.
Em seguida, eles decidiram adicionar paridade ímpar/uniforme ao número de unidades cheias de barras de cada lado. Paridade ímpar/uniforme é uma técnica usada para detectar qualquer número ímpar de erros de bits em um fluxo de bits. Eles decidiram usar ODD em metade e até por outro. Isso forneceria indicação adicional sobre a qual a metade do bilhete estava sendo lida. Isso significava que toda largura da barra tinha que ser lida com precisão para fornecer uma boa leitura. Também significava que todo espaço também seria conhecido.
Exigindo que toda a largura de bits seja lida com precisão basicamente anulada a vantagem delta c, exceto para a medição de referência delta c. Somente o conjunto de caracteres estranhos e o tamanho da etiqueta permanecem como uma sombra do código Delta C. O tamanho ainda era calculado para o delta puro C. Se o tamanho da etiqueta tivesse sido adequadamente recalculado, levando em consideração as medições de largura da barra necessárias, o rótulo teria sido muito grande para ser aceitável.
A engenharia mecânica e o design de circuitos eletrônicos geralmente requerem projetos de pior gabinete usando tolerâncias conhecidas. Muitos engenheiros que trabalham com códigos de barras tiveram pouca experiência com essas coisas e usaram métodos um tanto intuitivos. Essa foi a causa do mau desempenho do código delta B e provavelmente o fracasso do scanner ocular da RCA.
A tabela a seguir mostra os rótulos viáveis, disponíveis no início dos anos 1970, com seus tamanhos.
Label typeLabel dimensionsAreaBull's eye with Morse CodeLargeLargeBull's eye with Delta B12.0 in (300 mm) diameter113.10 in2 (729.7 cm2)Bull's eye with Delta A9.0 in (230 mm) diameter63.62 in2 (410.5 cm2)Baumeister 1st w/ Delta B6.0 in × 5.8 in (150 mm × 150 mm)34.80 in2 (224.5 cm2)Baumeister 2 halves w/ Delta B6.0 in × 3.0 in (152 mm × 76 mm)18.00 in2 (116.1 cm2)Baumeister 2 halves w/ Delta A4.5 in × 2.3 in (114 mm × 58 mm)10.35 in2 (66.8 cm2)Baumeister with Delta C1.5 in × 0.9 in (38 mm × 23 mm)1.35 in2 (8.7 cm2)Isso está assumindo o olho de um touro com a mesma informação e legibilidade confiável.
Cada código de barras UPC-A consiste em uma faixa digitalizável de barras pretas e espaços brancos acima de uma sequência de 12 dígitos numéricos. Sem letras, caracteres ou outro conteúdo de qualquer tipo podem aparecer em um código de barras UPC-A. Há uma correspondência individual entre o número de 12 dígitos e a faixa de barras pretas e espaços brancos, ou seja, existe apenas uma maneira de representar cada número de 12 dígitos visualmente e existe apenas uma maneira de representar cada faixa de barras pretas e espaços brancos numericamente.
A área digitalizável de cada código de barras UPC-A segue o padrão Sllllllmrrrrrre, onde os padrões de guarda S (Start), M (Médio) e E (End) são representados da mesma maneira em todos os códigos de barras UPC-A e L (esquerda) e As seções R (à direita) representam coletivamente os 12 dígitos numéricos que tornam cada UPC-A único. O primeiro dígito l indica um sistema de números específico a ser usado pelos seguintes dígitos. O último dígito R é um erro de detecção de verificação, que permite que alguns erros sejam detectados na digitalização ou entrada manual. Os padrões de guarda separam os dois grupos de seis dígitos numéricos e estabelecem o tempo.
UPC-AUPC-EO UPC-A 042100005264 é equivalente ao UPC-E 425261 com o padrão de paridade "Eoeeoo", que é definido pelo Sistema de Número UPC-A 0 e UPC-A Digit 4.
Os códigos de barras UPC-A podem ser impressos em várias densidades para acomodar uma variedade de processos de impressão e digitalização. O parâmetro dimensional significativo é chamado de dimensão X (largura do elemento de módulo único). A largura de cada barra (espaço) é determinada multiplicando a dimensão X e a largura do módulo (1, 2, 3 ou 4 unidades) de cada barra (espaço). Como os padrões de guarda incluem duas barras e cada um dos 12 dígitos do código de barras UPC-A consiste em duas barras e dois espaços, todos os códigos de barras UPC-A consistem exatamente (3 × 2) + (12 × 2) = 30 As barras, das quais 6 representam padrões de guarda e 24 representam dígitos numéricos.
A dimensão X para o UPC-A no tamanho nominal é de 0,33 mm (0,013 "). A altura do símbolo nominal para UPC-A é de 25,9 mm (1,02"). As barras que formam os padrões de guarda S (Start), M (meio) e E (End) são estendidas para baixo em 5 vezes a dimensão X, com uma altura de símbolo nominal resultante de 27,55 mm (1,08 "). Isso também se aplica a As barras do primeiro e último dígito numérico do UPC-A-código de barras. UPC-A podem ser reduzidas ou ampliadas entre 80% para 200%.
Uma zona silenciosa, com uma largura de pelo menos 9 vezes a dimensão X, deve estar presente em cada lado da área digitalizável do código de barras UPC-A. Para um número GTIN-12 codificado em um código de barras UPC-A, o primeiro e os últimos dígitos da interpretação legível pelo homem são sempre colocados fora do símbolo, a fim de indicar as zonas silenciosas necessárias para que os scanners de código de barras UPC funcionem corretamente.
O código de barras UPC-A é representado visualmente por tiras de barras e espaços que codificam o número de 12 dígitos do UPC-A. Cada dígito é representado por um padrão exclusivo de 2 barras e 2 espaços. As barras e espaços têm largura variável, isto é, 1, 2, 3 ou 4 módulos de largura. A largura total para um dígito é sempre 7 módulos; Consequentemente, o número de 12 dígitos da UPC-A requer um total de 7 × 12 = 84 módulos.
Um UPC-A completo tem 95 módulos de largura: 84 módulos para os dígitos (seções L e R) combinados com 11 módulos para os padrões de proteção S (Start), M (Middle) e E (End). Os padrões de proteção S (Start) e E (final) têm 3 módulos de largura e usam a barra de espaço de barra de padrão, onde cada barra e espaço é um módulo de largura. O padrão M (médio) de guarda tem 5 módulos de largura e usa o espaço de espaço espacial-bar-bar-bar-bar, onde cada barra e espaço também são um módulo de largura. Além disso, um símbolo UPC-A requer uma zona silenciosa (espaço extra de 9 módulos de largura) antes dos padrões S (Start) e após os E (End).
Encoding table for UPC-A barcode pattern SLLLLLLMRRRRRREQuietzoneS(start)L(left numerical digit)M(middle)R(right numerical digit)E(end)Quietzone01234567890123456789Os dígitos laterais esquerdo do UPC-A (os dígitos à esquerda do padrão M (médio) de guarda) têm paridade estranha, o que significa que a largura total das barras pretas é um número ímpar de módulos. Pelo contrário, os dígitos laterais à direita têm paridade uniforme. Consequentemente, um scanner da UPC pode determinar se está digitalizando um símbolo da esquerda para a direita ou da direita para a esquerda (o símbolo está de cabeça para baixo). Depois de ver um padrão de guarda S (Start) ou E (End) (eles são iguais, barra de espaço, qualquer que seja a direção lida), o scanner primeiro verá dígitos de paridade ímpares, se a digitalização da esquerda para a direita, ou mesmo dígitos de paridade, se digitalizar a direita para a esquerda. Com as informações de paridade/direção, um símbolo de cabeça para baixo não confundirá o scanner. Quando confrontado com um símbolo de cabeça para baixo, o scanner pode simplesmente ignorá-lo (muitos scanners alternam alternam as varreduras da esquerda e da direita para a esquerda, para que leiam o símbolo em um passe subsequente) ou reconheçam os dígitos e os colocarão na ordem certa. Há outra propriedade na codificação do dígito. Os dígitos laterais do lado direito são o inverso óptico dos dígitos laterais esquerdo, ou seja, as barras pretas são transformadas em espaços brancos e vice-versa. Por exemplo, o lado esquerdo "4" é espaço × 1 - bar × 1 - espaço × 3 - bar × 2, enquanto isso o lado direito "4" é bar × 1 - espaço × 1 - bar × 3 - Espaço × 2.
O número de códigos de barras UPC-A e UPC-E é limitado pelos padrões usados para criá-los.
UPC-A: (10 valores possíveis por dígito esquerdo ^ 6 dígitos esquerdos) × (10 valores possíveis por dígito direito ^ 5 dígitos direito) = 100.000.000.Upc-e: (10 valores possíveis por dígito ^ 6 dígitos) × (2 possível Padrões de paridade por número UPC-E) = 2.000.000.
Abaixo está a descrição de todos os sistemas de números possíveis com o esquema de numeração UPC-A correspondente de 12 dígitos, llllllrrrrrrrrrr, onde l denota o dígito do sistema de números e r Digit de verificação.
0–1, 6–9For most products. The LLLLL digits are the manufacturer code (assigned by local GS1 organization), and the RRRRR digits are the product code.2Reserved for local use (store/warehouse), for items sold by variable weight. Variable-weight items, such as meats, fresh fruits, or vegetables, are assigned an item number by the store, if they are packaged there. In this case, the LLLLL is the item number, and the RRRRR is either the weight or the price, with the first R determining which (0 for weight).3Drugs by National Drug Code (NDC) number. Pharmaceuticals in the U.S. use the middle 10 digits of the UPC as their NDC number. Though usually only over-the-counter drugs are scanned at point of sale, NDC-based UPCs are used on prescription drug packages and surgical products and, in this case, are commonly called UPN Codes.4Reserved for local use (store/warehouse), often for loyalty cards or store coupons.5Coupons. The LLLLL digits are digits 2-6 of the product's UPC prefix, the next three RRR are a family code (set by manufacturer or supplied by the coupon clearing house), and the next two RR are a value code (according to the GS1 value code table), which determines the amount of the discount. These coupons can be doubled or tripled.O UPC inclui um dígito de cheque para detectar erros de entrada de dados comuns. Por exemplo, os códigos UPC-A escolhem o dígito de verificação x 12 {\ displayStyle x_ {12}} para satisfazer a equação do dígito de verificação:
( 3 x 1 + x 2 + 3 x 3 + x 4 + 3 x 5 + x 6 + 3 x 7 + x 8 + 3 x 9 + x 10 + 3 x 11 + x 12 ) ≡ 0 ( mod 10 ) . {\displaystyle (3x_{1}+x_{2}+3x_{3}+x_{4}+3x_{5}+x_{6}+3x_{7}+x_{8}+3x_{9}+x_{10}+3x_{11}+x_{12})\equiv 0{\pmod {10}}.}Se um código inserido não satisfazer a equação, não será um UPC-A válido.
O dígito de verificação da UPC-A pode ser calculado da seguinte forma:
Sum the digits at odd-numbered positions (first, third, fifth,..., eleventh).Multiply the result by 3.Add the digit sum at even-numbered positions (second, fourth, sixth,..., tenth) to the result.Find the result modulo 10 (i.e. the remainder, when divided by 10) and call it M.If M is zero, then the check digit is 0; otherwise the check digit is 10 − M.Por exemplo, em um código de barras UPC-A "03600029145x12", onde x12 é o dígito de cheque desconhecido, x12 pode ser calculado por:
Sum the odd-numbered digits (0 + 6 + 0 + 2 + 1 + 5 = 14).Multiply the result by 3 (14 × 3 = 42).Add the even-numbered digits (42 + (3 + 0 + 0 + 9 + 4) = 58).Find the result modulo 10 (58 mod 10 = 8 = M).If M is not 0, subtract M from 10 (10 − M = 10 − 8 = 2).Assim, o dígito de verificação x12 é 2.
A equação do dígito de verificação é selecionada para ter propriedades de detecção de erro razoáveis (consulte o algoritmo Luhn).
UPC-A can detect 100% of single digit errors.A single digit error means exactly one digit is wrong. Let the difference modulo 10 of the erroneous digit and the correct digit be d. The value of d cannot be zero because that means the digits are the same, but d can be any other value in {1, 2, 3, 4, 5, 6, 7, 8, 9}. If the error digit is in an odd position (weight 1), the left hand side of check digit equation changes by d and the equivalence is no longer zero. If the error digit is in an even position (weight 3), then the left hand side changes by 3d, but that change is also nonzero modulo 10, so the check digit equation is not satisfied.UPC-A can detect about 89% of transposition errors. Specifically, if and only if the difference between two adjacent digits is 5, the UPC-A can't detect their transposition.If 2 neighboring digits are transposed, then one of the digits a will be weighted by 1, and the other digit b = a + d will be weighted by 3, where d is the difference between the two digits. If the digits were in their correct order, they would contribute 1 a + 3 b = 1 a + 3 ( a + d ) = 4 a + 3 d {\displaystyle 1a+3b=1a+3(a+d)=4a+3d}A UPC em seu uso mais comum se refere tecnicamente ao UPC-A.
Existem outras variantes da UPC:
UPC-B is a 12-digit version of UPC with no check digit, developed for the National Drug Code (NDC) and National Health Related Items Code.[failed verification] It has 11 digits plus a 1-digit product code, and is not in common use.UPC-C is a 12-digit code with a product code and a check digit; not in common use.UPC-D is a variable length code (12 digits or more) with the 12th digit being the check digit. These versions are not in common use.UPC-E is a 6-digit code, that has its equivalent in UPC-A 12-digit code with number system 0 or 1.UPC-2 is a 2-digit supplement to the UPC used to indicate the edition of a magazine or periodical.UPC-5 is a 5-digit supplement to the UPC used to indicate suggested retail price for books.Para permitir o uso de códigos de barras UPC em pacotes menores, onde um código de barras de 12 dígitos pode não caber, foi desenvolvida uma versão supressora zero da UPC, chamada UPC-E, na qual o dígito do sistema numérico, todos os zeros à direita no fabricante O código e todos os zeros principais no código do produto são suprimidos (omitidos). Essa simbologia difere do UPC-A, pois usa apenas um código de 6 dígitos, não usa o padrão M (médio) de guarda, e o padrão de guarda E (END) é formado como barra espacial-bar-bar-bar-bar-bar , ou seja, UPC-E Barcode segue o padrão sdddddde. A maneira pela qual um UPC-E de 6 dígitos se refere a um UPC-A de 12 dígitos é determinado pelo padrão numérico UPC-E e pelo padrão de paridade UPC-E. Ele só pode corresponder ao Sistema de Número UPC-A 0 ou 1, cujo valor, juntamente com o dígito de verificação UPC-A, determina o padrão de paridade UPC-E da codificação. Com os dígitos de código do fabricante representados por X's e dígitos de código de produto por n's, então:
Last UPC-E digitUPC-E numerical patternUPC-A equivalent0XXNNN00 or 1 + XX000-00NNN + check digit1XXNNN10 or 1 + XX100-00NNN + check digit2XXNNN20 or 1 + XX200-00NNN + check digit3XXXNN30 or 1 + XXX00-000NN + check digit4XXXXN40 or 1 + XXXX0-0000N + check digit5XXXXX50 or 1 + XXXXX-00005 + check digit6XXXXX60 or 1 + XXXXX-00006 + check digit7XXXXX70 or 1 + XXXXX-00007 + check digit8XXXXX80 or 1 + XXXXX-00008 + check digit9XXXXX90 or 1 + XXXXX-00009 + check digitPor exemplo, um UPC-E 654321 pode corresponder ao UPC-A 065100004327 ou 165100004324, dependendo do padrão de paridade UPC-E dos dígitos codificados, conforme descrito a seguir:
UPC-A check digitUPC-E parity pattern for UPC-ASistema de número 0
UPC-E parity pattern for UPC-ASistema Número 1
0EEEOOOOOOEEE1EEOEOOOOEOEE2EEOOEOOOEEOE3EEOOOEOOEEEO4EOEEOOOEOOEE5EOOEEOOEEOOE6EOOOEEOEEEOO7EOEOEOOEOEOE8EOEOOEOEOEEO9EOOEOEOEEOEOEncoding table for UPC-E barcode pattern SDDDDDDES(start)O(odd parity digit)E(even parity digit)E(end)01234567890123456789UPC-E 654321 com o padrão de paridade "eoeoo" (UPC-A 065100004327) seria codificado como
1-1-1 4-1-1-1 1-2-3-1 2-3-1-1 1-4-1-1 2-2-1-2 2-2-1 1-1 -1-1-1-1.
O código de barras ficaria assim:
O EAN-13 foi desenvolvido como um superconjunto da UPC-A, adicionando um dígito extra ao início de cada número UPC-A. Isso expandiu o número de valores únicos teoricamente possíveis em dez vezes para 1 trilhão. Os códigos de barras do EAN-13 também indicam o país em que a empresa que vende o produto é baseada (que pode ou não ser o mesmo que o país em que o bem é fabricado). Os três dígitos principais do código determinam isso, de acordo com os códigos do país GS1. Cada código UPC-A pode ser facilmente convertido para o código EAN-13 equivalente, preendendo 0 dígitos para o código UPC-A. Isso não altera o dígito de verificação. Todos os sistemas de ponto de venda agora podem entender ambos igualmente.
EAN-8 é uma variação de 8 dígitos do código de barras EAN.
Notas de uso da UPC:
All products marked with an EAN will be accepted in North America currently, in addition to those already marked with a UPC.Products with an existing UPC do not have to be re-marked with an EAN.In North America, the EAN adds 30% more codes, mainly by adding digits 10 through 12 to the UPC digits 00 through 09. This is a powerful incentive to phase out the UPC.