Wpisany przez Tomasz Lubiński,
24 lipca 2007 11:17
Od 1 stycznia 2007 roku książki oznaczane są wyłącznie numerem ISBN-13, który jest rozszerzeniem numeru ISBN-10, powstałym z następujących powodów:
Numer ISBN-13 (ang. International Standard Book Number) służy do oznaczania książek. Ma on następującą strukturę:
Należy zwrócić uwagę iż odseparowywanie kolejnych części numeru ISBN pozwala łatwo zorientować się, gdzie zaczynają się kolejne pola, ale nawet bez separatorów '-' możliwe byłoby wyznaczenie kodów kraju/wydawcy/książki. Dzieje się tak, gdyż raz wykorzystanego kodu nie wykorzystuje się jako prefiksu innego. I tak np numer 2 oznacza obszar francuskojęzyczny i żaden inny kod kraju nie zaczyna się na 2. Podobnie 83 oznacza Polskę, ale nie ma innych kodów kraju zaczynających się od 83.
Początkowo używany prefiks wynosi "978". Poprzez dodanie od numeru ISBN-10 prefiksu "978" i ponowne obliczenie sumy kontrolnej otrzymujemy numer ISBN-13. Prefiks "978" będzie używany tak długo, aż zużyte zostaną wszystkie dostępne kombinacje pozostałych cyfr składających się na kraj, wydawcę i tytuł. Po ich wyczerpaniu zostanie wprowadzony nowy prefiks. Oczywiście tylko numery z prefiksem "978" będą mogły być przetłumaczone z powrotem na ISBN-10, w przypadku nowych prefiksów nie będzie to już możliwe.
Dodatkowe 5 cyfr w numerze ISBN-13 może oznaczać cenę zakodowaną w następujący sposób. Pierwsza cyfra oznacza walutę (patrz tabela poniżej), 4 kolejne cyfry oznaczają cenę pomnożoną razy 100. Wynika z tego że kod: 51234 oznaczać będzie cenę: 12.34$. Kod o końcówce 9999 oznacza cenę 99.99 lub większą.
Obliczanie cyfry kontrolnej dla identyfikatora ISBN-13 przebiega następująco. Dla identyfikatora ISBN-13 wagi przez które mnożymy kolejne cyfry wynoszą: 1 3 1 3 1 3 1 3 1 3 1 3. Następnie wynik dzielimy modulo 10, i odejmujemy go od 10. Nastepnie ten wynik dzielimy znów modulo 10. Wynik musi być zgodny z ostatnią cyfrą kodu EAN-13.
Sprawdźmy czy numer: 978-83-87347-42-0 jest prawidłowy.
Kolejne cyfry numeru należy zatem przemnożyć przez odpowiednie wagi i dodać do siebie.
1*9 + 3*7 + 1*8 + 3*8 + 1*3 + 3*8 + 1*7 + 3*3 + 1*4 + 3*7 + 1*4 + 3*2 = 9 + 21 + 8 + 24 + 3 + 24 + 7 + 9 + 4 + 21 + 4 + 6 = 140.
Teraz dzielimy ten wynik modulo 10.
140 mod 10 = 0.
Następnie wynik ten odejmujemy od 10.
10 - 0 = 10.
I znów dzielimy modulo 10.
10 mod 10 = 0.
Cyfra kontrolna to 0 zatem numer jest prawidłowy.
- zwiększenie liczby dostępnych numerów ISBN,
- uzgodnienie numeru ISBN z systemem EAN (a dokładniej EAN-13), który jest powszechnie używany do oznaczania produktów.
Numer ISBN-13 (ang. International Standard Book Number) służy do oznaczania książek. Ma on następującą strukturę:
- prefiks (3 znaki),
- separator '-',
- identyfikator kraju/języka (1-5 znaków),
- separator '-',
- identyfikator wydawcy (przynajmniej 1 znak),
- separator '-',
- identyfikator tytułu (przynajmniej 1 znak),
- separator '-',
- suma kontrolna ISBN (jedna cyfra),
- dodatkowe informacje - opcjonalnie (5 cyfr).
Należy zwrócić uwagę iż odseparowywanie kolejnych części numeru ISBN pozwala łatwo zorientować się, gdzie zaczynają się kolejne pola, ale nawet bez separatorów '-' możliwe byłoby wyznaczenie kodów kraju/wydawcy/książki. Dzieje się tak, gdyż raz wykorzystanego kodu nie wykorzystuje się jako prefiksu innego. I tak np numer 2 oznacza obszar francuskojęzyczny i żaden inny kod kraju nie zaczyna się na 2. Podobnie 83 oznacza Polskę, ale nie ma innych kodów kraju zaczynających się od 83.
Początkowo używany prefiks wynosi "978". Poprzez dodanie od numeru ISBN-10 prefiksu "978" i ponowne obliczenie sumy kontrolnej otrzymujemy numer ISBN-13. Prefiks "978" będzie używany tak długo, aż zużyte zostaną wszystkie dostępne kombinacje pozostałych cyfr składających się na kraj, wydawcę i tytuł. Po ich wyczerpaniu zostanie wprowadzony nowy prefiks. Oczywiście tylko numery z prefiksem "978" będą mogły być przetłumaczone z powrotem na ISBN-10, w przypadku nowych prefiksów nie będzie to już możliwe.
Dodatkowe 5 cyfr w numerze ISBN-13 może oznaczać cenę zakodowaną w następujący sposób. Pierwsza cyfra oznacza walutę (patrz tabela poniżej), 4 kolejne cyfry oznaczają cenę pomnożoną razy 100. Wynika z tego że kod: 51234 oznaczać będzie cenę: 12.34$. Kod o końcówce 9999 oznacza cenę 99.99 lub większą.
pierwsza cyfra | waluta |
0 | GBP - funt brytyjski |
1 | GBP - funt brytyjski |
3 | $ - dolar australijski |
4 | $ - dolar nowozelandzki |
5 | $ - dolar amerykański |
6 | $ - dolar kanadyjski |
Obliczanie cyfry kontrolnej dla identyfikatora ISBN-13 przebiega następująco. Dla identyfikatora ISBN-13 wagi przez które mnożymy kolejne cyfry wynoszą: 1 3 1 3 1 3 1 3 1 3 1 3. Następnie wynik dzielimy modulo 10, i odejmujemy go od 10. Nastepnie ten wynik dzielimy znów modulo 10. Wynik musi być zgodny z ostatnią cyfrą kodu EAN-13.
Przykład:
Sprawdźmy czy numer: 978-83-87347-42-0 jest prawidłowy.
Kolejne cyfry numeru należy zatem przemnożyć przez odpowiednie wagi i dodać do siebie.
1*9 + 3*7 + 1*8 + 3*8 + 1*3 + 3*8 + 1*7 + 3*3 + 1*4 + 3*7 + 1*4 + 3*2 = 9 + 21 + 8 + 24 + 3 + 24 + 7 + 9 + 4 + 21 + 4 + 6 = 140.
Teraz dzielimy ten wynik modulo 10.
140 mod 10 = 0.
Następnie wynik ten odejmujemy od 10.
10 - 0 = 10.
I znów dzielimy modulo 10.
10 mod 10 = 0.
Cyfra kontrolna to 0 zatem numer jest prawidłowy.
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C/C++ | .cpp | .cpp | ***** / 2 | |
Tomasz Lubiński | Delphi/Pascal | .pas | .pas | ***** / 2 | |
Tomasz Lubiński | Java | .java | .java | ***** / 3 |
Kody krajów dla ISBN
|
|
Poprawiony: 29 sierpnia 2012 20:15