Quinta, 18 de Abril de 2024




 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.

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