Os exemplos abaixo descrevem uma abordagem para aplicação do algoritmo Luhn em dois ISINs diferentes. A diferença nos dois exemplos tem a ver com se há um número ímpar ou par de dígitos após a conversão de letras para número. Como o elemento NSIN pode ser qualquer sequência alfanumérica (9 caracteres), um número ímpar de letras resultará num número par de dígitos e um número par de letras resultará num número ímpar de dígitos. Para um número ímpar de dígitos, é utilizada a abordagem do primeiro exemplo. Para um número par de dígitos, é utilizada a abordagem do segundo exemplo. O algoritmo Luhn também pode ser aplicado da mesma maneira para ambos os tipos ou comprimentos (alternando multiplicar a string de dígitos por 1 e 2, começando do final da string), sendo mais genérico.

Apple, Inc.

Apple, Inc.: ISIN US0378331005, expandido da CUSIP 037833100 O corpo principal da ISIN é a CUSIP original, atribuída na década de 1970. O código do país “US” foi adicionado na frente, e um dígito de verificação adicional no final. O código do país indica o país de emissão. O dígito de verificação é calculado usando o algoritmo Luhn.

Converter quaisquer letras para números:

U = 30, S = 28. US037833100 -> 30 28 037833100

Colher caracteres pares e ímpares:

3028037833100 = (3, 2, 0, 7, 3, 1, 0), (0, 8, 3, 8, 3, 0)

Multiplicar o grupo contendo o caracter mais à direita (que é o PRIMEIRO grupo) por 2:

(6, 4, 0, 14, 6, 2, 0)

Adicionar os dígitos individuais:

(6 + 4 + 0 + (1 + 4) + 6 + 2 + 0) + (0 + 8 + 3 + 8 + 3 + 0) = 45

Tirar o módulo 10s da soma:

45 mod 10 = 5

Subtrair de 10:

10 – 5 = 5

Tirar o módulo 10s do resultado (este passo final é importante no caso em que o módulo da soma é 0, pois o dígito de verificação resultante seria 10).

5 mod 10 = 5

Então o dígito de verificação ISIN é 5.

Treasury Corporation of Victoria

TREASURY CORP VICTORIA 5 3/4% 2005-2016: ISIN AU0000XVGZA3. O dígito de verificação é calculado usando o algoritmo Luhn.

Converter quaisquer letras para números:

A = 10, G = 16, U = 30, V = 31, X = 33, Z = 35. AU0000XVGZA -> 10 30 0000 33 31 16 35 10.

Colar caracteres pares e ímpares:

103000003331163510 = (1, 3, 0, 0, 0, 3, 3, 1, 3, 1), (0, 0, 0, 0, 0, 3, 1, 6, 5, 0)

Multiplicar o grupo contendo o caractere mais à direita (que é o SEGUNDO grupo) por 2:

(0, 0, 0, 0, 0, 6, 2, 12, 10, 0)

Adicionar os dígitos individuais:

(1 + 3 + 0 + 0 + 3 + 3 + 1 + 3 + 1) + (0 + 0 + 0 + 0 + 0 + 6 + 2 + (1 + 2) + (1 + 0) + 0) = 27

Toma o módulo 10s da soma:

27 mod 10 = 7

Subtrair de 10:

10 – 7 = 3

Tirar o módulo 10s do resultado (esta etapa final é importante no caso em que o módulo da soma é 0, pois o dígito de verificação resultante seria 10).

3 mod 10 = 3

Então o dígito de verificação ISIN é 3.

BAE Systems

BAE Systems: ISIN GB0002634946, expandido de SEDOL 000263494

O corpo principal é o SEDOL, acolchoado na frente com a adição de dois zeros. O código do país “GB” é então adicionado na frente, e o dígito de controle no final como no exemplo acima.

Deixe uma resposta

O seu endereço de email não será publicado.