|
Cálculo de Dígito Verificador
O Dígito Verificador é um mecanismo que garante a validade e integridade de um número,
protegendo-o principalmente contra digitações erradas.
Consiste basicamente de um ou mais dígitos acrescentados ao número principal
(tornando-se parte deste), calculado através de rotina apropriada.
É usado normalmente em representações numéricas que exijam integridade,
tais como documentos de identificação (CPF, CNPJ, PIS, RG, etc),
códigos de pagamentos (Boleto de cobrança, Código de concessionária pública, etc),
Códigos Identificadores (Agência, Conta-Corrente, Número de Matrícula, etc), etc.
O método de cálculo desses dígitos varia conforme o caso, porém muitos deles se baseiam
em duas rotinas típicas: A Módulo 11 e a Módulo 10.
Abaixo temos uma explicação do cálculo dessas duas rotinas:
Módulo 11:
Conforme o esquema abaixo, cada dígito do número, começando da direita para a esquerda
(menos significativo para o mais significativo) é multiplicado, na ordem, por 2, depois
3, depois 4 e assim sucessivamente, até o limite de multiplicação escolhido.
Aí novamente multiplica-se o número por 2, 3, etc.
Número exemplo: 261533-9
+---+---+---+---+---+---+ +---+
| 2 | 6 | 1 | 5 | 3 | 3 | - | 9 |
+---+---+---+---+---+---+ +---+
| | | | | |
x7 x6 x5 x4 x3 x2
| | | | | |
=14 =36 =5 =20 =9 =6
+---+---+---+---+---+-> =90 x10, /11 =81, resto 9 => DV = 9
A somatória dessas multiplicações é multiplicada por 10 e dividida por 11. O resto desta
divisão (módulo 11) é o dígito verificador. Apenas o dígito menos significativo é utilizado.
Quando o número for alfanumérico utiliza-se o código ASC do dígito entrante menos 48
(código ASC do número zero). Desta forma os números "0" a "9" continuam entrando no
cálculo como 0 a 9 e as letras de "A" a "Z" entrarão no cálculo como 17 a 42.
Em outro método de cálculo a somatória das multiplicações não é multiplicada por 10.
Simplesmente é dividida por 11. Só que neste caso o resto pode ser 10. Se isso acontece
o dígito será "X".
Esse é o exemplo da rotina padrão de módulo 11 disponível em
Soluções e
Utilitários.
Módulo 10:
Conforme o esquema abaixo, cada dígito do número, começando da direita para
a esquerda (menos significativo para o mais significativo) é multiplicado, na ordem,
por 2, depois 1, depois 2, depois 1 e assim sucessivamente.
Número exemplo: 261533-4
+---+---+---+---+---+---+ +---+
| 2 | 6 | 1 | 5 | 3 | 3 | - | 4 |
+---+---+---+---+---+---+ +---+
| | | | | |
x1 x2 x1 x2 x1 x2
| | | | | |
=2 =12 =1 =10 =3 =6
+---+---+---+---+---+-> =16 /10 =1, resto 6 => DV = (10 - 6) = 4
Ao invés de ser feita a somatória das multiplicações, será feita a somatória dos
dígitos das multiplicações (se uma multiplicação der 12, por exemplo, será somado
1 + 2 = 3).
A somatória será dividida por 10 e se o resto (módulo 10) for diferente de zero, o
dígito será 10 menos este valor.
Note que estas condições finais poderão ser alteradas conforme o caso. Esse é o exemplo
da rotina padrão de módulo 10 disponível em
Soluções.
Nota do autor:
O texto desta publicação foi originalmente concebido em 2001 neste site.
A versão existente na Wikipedia foi baseada nesta publicação e não o contrário.
|
¤ Links Relacionados:
- Soluções
- Utilitários
Gostou? Compartilhe ou comente:
7 comentários:
Danilo Calixto 11 meses atrás Muito útil mesmo, estava já a uns dias procurando como encontrar o dígito verificador de um protocolo de transmissão de uma Declaração de Importação, e eis que aqui encontrei a solução.
Muito obrigado.
Silvano Dos Santos Moreno 7 anos atrás Muito útil, esse dispositivo poderia fazer parte do kit de qualquer banco/bancário
Zita Sudré 7 anos atrás OK. Muito interessante!!!!
Claudio Antunes 7 anos atrás gostei valeu
Rai Dias 9 anos atrás Muito bom. Consegui calcular o dígito verificador de uma conta corrente que estava faltando pra fazer uma tranferência.
Chirley Abagnale 12 anos atrás Adoreiiii
Patricia Maria Polis 13 anos atrás simplesmente magnifico
|
|