Jolly Cas

Greenhorn

Posts: 2

karl koch

Ranch Hand

Posts: 388

Jolly Cas

Greenhorn

Posts: 2

posted 13 years ago

thanks Karl

Originally posted by karl koch:

if you take the time to ask google you will find stuff like this

isbntools

k

thanks Karl

posted 13 years ago

ISBNs are 10 digits, broken down into 4 variable length fields. For validation purposes, you can ignore where the field breaks are, and any dashes you might get. the first 9 characters must be digits 0-9, the last (the check digit) must be 0-9, x, or X (the case is irrelevant, but it could be printed/entered either way).

to compute the check digit, take the first digit of the string, and mulitply by 10. take the next, mult. by 9, the next by 8... until you multiply the 9th digit by 2 and the 10th digit by 1.

sum all those values.

take that sum modulus 11. if you get 0, the ISBN is valid. if you get anything else, you have an error.

some simple Algebra will prove that if you have exactly 1 digit entered wrong, or reverse the input of two digits, the modified ISBN will fail this test. This scheme was designed since about 95% of all errors when manually entering barcodes are of one of these two error types.

This scheme works for the current ISBN schema, but there will be a change in the next few years - they will become longer and have a new algorithm

to compute the check digit, take the first digit of the string, and mulitply by 10. take the next, mult. by 9, the next by 8... until you multiply the 9th digit by 2 and the 10th digit by 1.

sum all those values.

take that sum modulus 11. if you get 0, the ISBN is valid. if you get anything else, you have an error.

some simple Algebra will prove that if you have exactly 1 digit entered wrong, or reverse the input of two digits, the modified ISBN will fail this test. This scheme was designed since about 95% of all errors when manually entering barcodes are of one of these two error types.

This scheme works for the current ISBN schema, but there will be a change in the next few years - they will become longer and have a new algorithm

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors

Jeroen Wenting

Ranch Hand

Posts: 5093

posted 13 years ago
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors

It's going to change, from what i understand. they're running out of numbers, so they need a new scheme. i'm not sure of the details, but whereas now the fields mean specific things (first field is (i think) language or some sort, second is the publisher, third is the specific book, last is check digit), the new codes will just be handed out as needed.

large publishing houses may be given 10,000 at a time, and a small house maybe 100. and they'll be handed out as needed.

Of course, most of my info on the new format is 2-3 years old, so it's probably changed since then.

large publishing houses may be given 10,000 at a time, and a small house maybe 100. and they'll be handed out as needed.

Of course, most of my info on the new format is 2-3 years old, so it's probably changed since then.

karl koch

Ranch Hand

Posts: 388

posted 13 years ago
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors

Not being one to leave well enough alone...

It turns out that current ISBNs are actually 13 digits. but they always start off with 978, so those three are ignored. they are not used in the current check digit scheme.

HOWEVER, in Jan 2007, the new ISBN-13 standard is supposed to take effect. basically, they will start issuing 13-digit ISBNs. the old ones are still valid, but will now use that 978. the new ones will start with 979. And since all 13 digits will now be used, we need a new algorithm.

the new algorithm is this:

starting with the first digit, multiply every other digit by 1 and 3 all the way down. sum those values, and the total should be a multiple of 10.

you can find an example here:

New ISBN info

this means that on all 13 digit ISBNs, the check digit will only be 0-9. any old 10-digit ISBN can be converted to a new 13 digit one, by adding the 979, but the check digit will now change.

And the reason i know all this is i work for a company that writes software for libraries. We need to know this kind of stuff. :-)

It turns out that current ISBNs are actually 13 digits. but they always start off with 978, so those three are ignored. they are not used in the current check digit scheme.

HOWEVER, in Jan 2007, the new ISBN-13 standard is supposed to take effect. basically, they will start issuing 13-digit ISBNs. the old ones are still valid, but will now use that 978. the new ones will start with 979. And since all 13 digits will now be used, we need a new algorithm.

the new algorithm is this:

starting with the first digit, multiply every other digit by 1 and 3 all the way down. sum those values, and the total should be a multiple of 10.

you can find an example here:

New ISBN info

this means that on all 13 digit ISBNs, the check digit will only be 0-9. any old 10-digit ISBN can be converted to a new 13 digit one, by adding the 979, but the check digit will now change.

And the reason i know all this is i work for a company that writes software for libraries. We need to know this kind of stuff. :-)

It is sorta covered in the JavaRanch Style Guide. |