User:Bollins Cerrname/USI 03711

USI 03711 is a mark used by non-fiction books/novels or textbooks, in the front or the back of the book, giving the format as XXXX0000000.

Example MECU1255495
 * Red: Three letters (Author's name)
 * Blue: Category identifier
 * Purple: Selection
 * Green: Reference number
 * Orange: Check digit

Three initials
The three initials of the author giving it who made it.

Category identifier
The category identifier is located in the fourth digit.
 * U for non-fiction books
 * Y for novels
 * E for textbooks

Selection
Those selections are those lists:
 * 022, 122: non-fiction books
 * 025, 125: non-fiction books/texbooks
 * 028, 128: textbooks/novels/non-fiction books

Reference number
The reference number consists of three digits, marking it to reference belongs to.

Check digit
The check digit consists of one digit.

How to find
To do this, the letters have to be converted into numbers. Here's how to do:

Step 1
An equivalent numerical value is assigned to each letter of the alphabet, beginning with 10 for the letter A (11 and multiples thereof are omitted):

The invidual digits of selection/reference number keep their numeric value.

Step 2
Each of the numbers calculated in step 1 is multiplied by 2position, where position is the exponent to base 2. Position starts at 0, from left to right.

The following table shows the multiplication factors:

Step 3
1. Sum up all results of Step 2

2. Divide them by 11

3. Round the result down to zero i.e. make the result a whole number (integer)

4. Multiply the integer value by 11

5. Subtract result of (iv) from result of (i): This is the check digit.

If the final difference is 10, then the check digit becomes 0. To ensure that this does not happen, the standard recommends that numbers should not be used which produce a final difference of 10, however in the market which do not follow this recommendation, so handling this case has to be included if a check digit calculator is programmed.

Notice that step (ii) to (v) is a calculation of the remainder found after division of (i) by 11. Most programming languages have a modulo operator for this. Attention should be paid on how it is working in the language chosen; i. e. if it is giving back the decimal rest or the integer rest in order to get proper results. 11 is used as divisor because a number has 11 letters and digits in total. In step 1 the numbers 11, 22 and 33 are left out as they are multiples of the divisor.