프로그램

바코드 프로그램 - 3. EAN-13 표준의 해석.

(주)CKBcorp., 2012. 2. 26. 00:24
반응형


아니...그냥, 정리한 김에 같이 해 버리려구.

1. EAN-13 코드는, 13자리 숫자로 구성된다.
2. 13자리는 12숫자 + 1 로 구성된다.
3. 13자리 숫자 중, 맨 마지막 숫자는 checkSum 이다( 예를 들어, 123456789012 일 경우, checkSum 은 8이다. )
3.1. CheckSum 은 홀수 합( Odd로 표시 ), 짝수 합( Even ) 값을 쿵짝쿵짝 계산하면 된다.
3.2. CheckSum 계산공식: 
CheckSum = ( 10 - [ (3 * Odd + Even) % 10 ] ) % 10. ( %: 나머지 연산 ) 
3.3. 123456789012 에서 
짝수 합은 : 2,4,6,8,0,2 의 합인 22 이다.
홀수 합은 : 1,3,5,7,9,1 의 합인 26 이다.
3.4. 그러므로 CheckSum 은 8 이다. 

4. EAN-13 바코드는 검은 색 바가 1, 흰색 공란이 0 으로 표시된다.
5. 하나의 숫자는, 7개의 바코드로 표현된다.
6. EAN-13 바코드는 101 로 시작한다( 시작 코드: 101 )
7. EAN-13 바코드는 101 로 종료한다( 종료 코드: 101 )
8. EAN-13 바코드는 7번째 숫자 바코드와 8번째 숫자 바코드 사이에 10101 을 중간 코드로 넣는다( 중간 코드: 10101 )

9. EAN-13 바코드는, 1~7번째 숫자 표현 바코드와, 8~13번째 숫자 표현 바코드가 다르다.
10. EAN-13 바코드의 1~7번째 숫자 표현을 위해서, 3개의 바코드 번호 테이블이 사용된다. 바코드 테이블은 아래와 같다.

The first part is encoded according to the following table :
처음으로 할 일은, ( 1번째 숫자에 따라 ) 아래의 테이블에 따라 바코드용 일렬번호를 찾는 것이다. 예를들어 바코드 번호가  210987654321 이라면, 숫자 2에 의해  바코드용 일렬번호는 001101 이 된다,  

digitsequence
0 000000
1 001011
2 001101
3 001110
4 010011
5 011001
6 011100
7 010101
8 010110
9 011010

Thus for each bit of the first digit, a sequence of 6 "0" or "1" will be used to encode the 6 next digits according to the following tables :
고로, 첫 숫자에 의한 여섯개의 "0","1" 비트들은, 아래의 테이블의 table 0, table 1을 선택하게 된다. ( 비트가 "0" 이면 table 0, 비트가 "1"이면 table 1 에서 바코드 값을 가져온다. )

digittable 0table 1
0 0001101 0100111
1 0011001 0110011
2 0010011 0011011
3 0111101 0100001
4 0100011 0011101
5 0110001 0111001
6 0101111 0000101
7 0111011 0010001
8 0110111 0001001
9 0001011 0010111

For example, the first digit is 2, the tables used for the digit 2 to 7 will be defined by the sequence 001101:
예로, 210987654321 에서 처음 숫자가 2이므로,  나머지 109876 에 적용될 테이블 순서는 순서대로 table0,table0,table1,table1,table0,table1 이다. 

  • The "1" will result from table "0"
    2번째 자리의 숫자 "1" 에 대한 barcode는 table0 에서 
  • The "0" will result from table "0"
    2번째 자리의 숫자 "0" 에 대한 barcode는 table0 에서   
  • The "9" will result from table "1"
    2번째 자리의 숫자 "9" 에 대한 barcode는 table1 에서   
  • ...

     

Part #1 will be 0011001 0001101 0010111 0001001 0111011 0000101
고로, 첫번째 부분에 대한 바코드 문자열은 "
0011001 0001101 0010111 0001001 0111011 0000101" 이 된다.

Intermediate

An intermediate sequence separate the 2 parts : 01010

  
11. EAN-13 바코드의 8~13 번째 숫자 표현을 위해서, 1개의 바코드 번호 테이블이 사용된다. 바코드 테이블은 아래와 같다.

Part #2

The second part is encoded according to the following table :
두번째 부분( 8~13번째 숫자) 에 대한 바코드는, 이하의 테이블에서 얻는다.

digittable 2
0 1110010
1 1100110
2 1101100
3 1000010
4 1011100
5 1001110
6 1010000
7 1000100
8 1001000
9 1110100
Part #2 will be 1001110 1011100 1000010 1101100 1100110 1110010
고로, 654321 에 대한 바코드는  1001110 1011100 1000010 1101100 1100110 1110010 이 될 것이다.

... 설명 쓰려다, 그냥 영어 해석하는 게 나을 듯 해서 중간부터 영어 해석 + 설명 썼다. 

 

반응형