Qual o maior número em C++ [RESOLVIDO]

1. Qual o maior número em C++ [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/01/2018 - 12:33h

Olá pessoas, hoje eu queria perguntar essa pergunta, pois estou fazendo uma linguagem de programação em C++ e queria saber. Pois o usuário pode usar na linguagem. Então quis saber, além disso, da para calcular o numero de graham, ou até os gogolplex?



  


2. Re: Qual o maior número em C++

Fernando
phoemur

(usa Debian)

Enviado em 05/01/2018 - 21:19h

Para os tipos nativos (POD = plain old data) depende da arquitetura e da implementação.
Se ainda me lembro, apenas o char é definido como tendo 1 byte (8bits) de tamanho, o resto depende.
sizeof(char) == 1 sempre.
Porém nem sempre um int vai ter 32 bits. Em um processador ARM um int pode ter 16 bits por exemplo, principalmente em sistemas embarcados...

Em C++ você pode saber o maior número representado por um int por exemplo com:


std::numeric_limits<int>::max()


exemplo:
http://en.cppreference.com/w/cpp/types/numeric_limits
#include <limits>
#include <iostream>

int main()
{
std::cout << "type\tlowest\thighest\n";
std::cout << "int\t"
<< std::numeric_limits<int>::lowest() << '\t'
<< std::numeric_limits<int>::max() << '\n';
std::cout << "float\t"
<< std::numeric_limits<float>::lowest() << '\t'
<< std::numeric_limits<float>::max() << '\n';
std::cout << "double\t"
<< std::numeric_limits<double>::lowest() << '\t'
<< std::numeric_limits<double>::max() << '\n';
}


Em C existem macros como por exemplo INT_MAX porém em C++ a maneira mais correta, e também mais flexível é utilizar std::numeric_limits


*** Você pode usar as definições do limits.h / climits e usar um std::int32_t e daí você garante que estará usando um int com 32 bits de tamanho. Veja: http://en.cppreference.com/w/cpp/types/integer


3. Re: Qual o maior número em C++

Fernando
phoemur

(usa Debian)

Enviado em 05/01/2018 - 21:24h

Se você precisar de um número que seja maior que um unsigned long long (ou seja, um std::uint64_t)
você vai precisar de usar números com precisão variável (big_int), disponíveis em bibliotecas que não são padrões da linguagem...

Recomendo dar uma olhada no Boost Multiprecision que é um wrapper para as mais conhecidas bibliotecas, como a excelente GMP, e fazendo assim não existe máximo...

exemplo fatorial de 10000:
http://www.boost.org/doc/libs/1_55_0/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/gmp_...

// g++ -o teste teste.cpp -Wall -O2 -lgmp
#include <boost/multiprecision/gmp.hpp>
#include <iostream>

using namespace boost::multiprecision;


int main()
{
mpz_int v = 1;

// Do some arithmetic:
for (unsigned i = 1; i <= 10000; ++i) {
v *= i;
}

std::cout << v << std::endl; // prints 10000!

return 0;
}




4. Re: Qual o maior número em C++ [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/01/2018 - 22:26h

Valeu, agora eu vou terminar...


Frases que fazem sentido.
Flutuações Quânticas podem Existir, assim como o Decaimento do Vácuo.
O Futuro não importa, o que importa e da para frente. HAHAHA







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts