Trabalhar com Aritmética de Inteiros Longos em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a trabalhar com aritmética de inteiros grandes em C usando o tipo de dado long long. O laboratório cobre os seguintes passos:

Declarar variáveis long long para lidar com valores inteiros grandes, realizar operações aritméticas básicas, como adição, subtração, multiplicação e divisão nesses inteiros grandes, e imprimir e validar os resultados. Ao final deste laboratório, você será capaz de trabalhar efetivamente com dados de inteiros grandes em seus programas C.

Declarar Variáveis long long

Neste passo, você aprenderá a declarar e usar variáveis long long em C para lidar com aritmética de inteiros grandes. O tipo de dado long long permite trabalhar com valores inteiros muito maiores em comparação com os tipos de inteiros padrão.

Primeiro, vamos criar um novo arquivo C para demonstrar a declaração de variáveis long long:

cd ~/project
nano long_integer.c

Agora, adicione o seguinte código ao arquivo:

#include <stdio.h>

int main() {
    // Declarar variáveis long long
    long long smallNumber = 1234567890;
    long long largeNumber = 9876543210123456789LL;

    // Imprimir os valores das variáveis long long
    printf("Small Number: %lld\n", smallNumber);
    printf("Large Number: %lld\n", largeNumber);

    return 0;
}

Vamos decompor o código:

  • Usamos long long para declarar variáveis que podem armazenar valores inteiros muito grandes.
  • O sufixo LL é usado para literais de inteiros grandes para especificar explicitamente o tipo long long.
  • O especificador de formato %lld é usado para imprimir inteiros long long.

Compile e execute o programa:

gcc long_integer.c -o long_integer
./long_integer

Exemplo de saída:

Small Number: 1234567890
Large Number: 9876543210123456789

Realizar Operações Aritméticas em Inteiros Grandes

Neste passo, você aprenderá a realizar operações aritméticas em inteiros grandes usando o tipo de dado long long em C. Vamos estender o exemplo anterior para demonstrar operações matemáticas básicas.

Abra o arquivo anterior e modifique-o para incluir operações aritméticas:

cd ~/project
nano long_integer.c

Substitua o conteúdo anterior pelo seguinte código:

#include <stdio.h>

int main() {
    // Declarar variáveis long long para operações aritméticas
    long long num1 = 9876543210LL;
    long long num2 = 1234567890LL;

    // Adição
    long long sum = num1 + num2;
    printf("Adição: %lld + %lld = %lld\n", num1, num2, sum);

    // Subtração
    long long difference = num1 - num2;
    printf("Subtração: %lld - %lld = %lld\n", num1, num2, difference);

    // Multiplicação
    long long product = num1 * num2;
    printf("Multiplicação: %lld * %lld = %lld\n", num1, num2, product);

    return 0;
}

Vamos decompor o código:

  • Declaramos duas variáveis long long, num1 e num2.
  • Realizamos adição, subtração e multiplicação.
  • Usamos o especificador de formato %lld para imprimir resultados de inteiros grandes.
  • O sufixo LL garante que os números sejam tratados como literais long long.

Compile e execute o programa:

gcc long_integer.c -o long_integer
./long_integer

Exemplo de saída:

Adição: 9876543210 + 1234567890 = 11111111100
Subtração: 9876543210 - 1234567890 = 8641975320
Multiplicação: 9876543210 * 1234567890 = 12193263111263526900

Imprimir e Validar Resultados Grandes

Neste passo, você aprenderá a imprimir e validar resultados de inteiros grandes usando diferentes técnicas de formatação e verificação de erros em C.

Abra o arquivo anterior e modifique-o para incluir impressão e validação avançadas:

cd ~/project
nano long_integer.c

Substitua o conteúdo anterior pelo seguinte código:

#include <stdio.h>
#include <limits.h>

int main() {
    // Declarar variáveis long long para cálculos grandes
    long long num1 = 9876543210LL;
    long long num2 = 1234567890LL;

    // Multiplicação com verificação de estouro
    long long product = num1 * num2;
    printf("Resultado da Multiplicação: %lld\n", product);

    // Demonstração de diferentes formatos de impressão
    printf("Representação Hexadecimal: 0x%llx\n", product);
    printf("Notação Científica: %lle\n", (double)product);

    // Verificar possível estouro
    if (product / num1 != num2) {
        printf("Aviso: Possível estouro de inteiro detectado!\n");
    }

    // Valor máximo de long long
    printf("Valor máximo de long long: %lld\n", LLONG_MAX);

    return 0;
}

Vamos decompor o código:

  • Use diferentes formatos de impressão: decimal, hexadecimal e notação científica.
  • Implemente uma verificação simples de estouro dividindo o produto.
  • Use LLONG_MAX para mostrar o valor máximo possível de long long.

Compile e execute o programa:

gcc long_integer.c -o long_integer
./long_integer

Exemplo de saída:

Resultado da Multiplicação: 12193263111263526900
Representação Hexadecimal: 0xa93263111263526900
Notação Científica: 1.219326e+19
Valor máximo de long long: 9223372036854775807

Resumo

Neste laboratório, você aprendeu a declarar e usar variáveis long long em C para lidar com aritmética de inteiros grandes. Começou declarando variáveis long long e imprimindo seus valores para compreender a faixa de valores que elas podem armazenar. Em seguida, realizou operações aritméticas básicas, como adição, subtração, multiplicação e divisão em inteiros grandes usando o tipo de dado long long. Finalmente, aprendeu a imprimir e validar os resultados dessas operações. As principais conclusões deste laboratório são a importância de usar o tipo de dado apropriado para cálculos com inteiros grandes e os especificadores de formato específicos necessários para imprimir valores long long.