COBOL - Conditional expressions - Alphanumeric comparisons



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - Conditional expressions - Alphanumeric comparisons
Enterprise COBOL for z/OS, V4.2, Language Reference

Uma comparação alfanumérica é uma comparação dos valores de caracteres de byte único de dois operandos.

Quando um dos operandos não é alfanumérico nem alfabético de classe, esse operando é processado da seguinte maneira:

  • Um item de dados de ponto flutuante de exibição é tratado como se fosse um item de dados da categoria alfanumérica, e não como um valor numérico.
  • Um operando inteiro decimal zonado é tratado como se fosse movido para um item de dados elementar temporário da categoria alfanumérica com um comprimento igual ao número de dígitos no número inteiro, de acordo com as regras da instrução MOVE.

    Quando a opção do compilador ZWB está em vigor, o valor não assinado do operando inteiro é movido para o item de dados temporário.
    Quando a opção do compilador NOZWB é especificada, o valor assinado é movido para o item de dados temporário.
    Consulte ZWB para obter mais detalhes sobre a opção do compilador ZWB (NOZWB).

    A comparação prossegue com o item de dados temporário da categoria alfanumérica.

Comparação de dois operandos alfanuméricos

As comparações alfanuméricas são feitas com relação à sequência de intercalação do conjunto de caracteres em uso da seguinte forma:

  • Para o conjunto de caracteres EBCDIC, a sequência de intercalação EBCDIC é usada.
  • Para o conjunto de caracteres ASCII, a sequência de intercalação ASCII é usada.
  • Quando a cláusula PROGRAM COLLATING SEQUENCE é especificada no parágrafo object-computer, a sequência de intercalação usada é aquela associada no parágrafo de special-names ao nome do alfabeto especificado.

O tamanho de cada operando é o número total de posições de caracteres nesse operando; o tamanho afeta o resultado da comparação.
Há dois casos a serem considerados:

Operandos de tamanho igual
Os caracteres nas posições correspondentes dos dois operandos são comparados, começando com o caractere mais à esquerda e continuando com o caractere mais à direita.

Se todos os pares de caracteres do último par forem avaliados como iguais, os operandos serão iguais.

Se um par de caracteres desiguais for encontrado, os caracteres serão testados para determinar suas posições relativas na sequência de intercalação.
O operando que contém o caractere mais alto na sequência é considerado o operando maior.

Operandos de tamanho desigual
Se os operandos forem de tamanho desigual, a comparação será feita como se o operando mais curto fosse estendido para a direita, com espaços suficientes para tornar os operandos iguais em tamanho.

O valor de intercalação mais alto é determinado usando o valor hexadecimal de caracteres.



© Copyright IBM Corp.