Какой тип для целого числа более 4 байтов?

StackOverflow https://stackoverflow.com/questions/215430

  •  03-07-2019
  •  | 
  •  

Вопрос

Я должен использовать целые числа без знака, которые могут занимать более 4 байтов, какой тип я должен использовать?

PS Извините за " noobism " но это все: D

Примечание: мне нужны целые числа, потому что я должен делать деления и заботиться только о целочисленных частях, и этот способ int полезен

Это было полезно?

Решение

длинный длинный , 64-разрядное целое число ... здесь вы можете найти некоторые ссылки на типы данных и диапазоны ...

Другие советы

Просто включите < stdint.h > и используйте int64_t и uint64_t (так как вы хотите unsigned, вы хотите uint64_t).

В этом заголовке есть несколько других полезных вариантов, например, наименьшее количество вариантов (uint_least64_t - это тип, по крайней мере, с 64 битами) и быстрые варианты (uint_fast64_t - самый быстрый целочисленный тип с, по крайней мере, 64 битами). Также очень полезными являются intptr_t / uintptr_t (достаточно большой для указателя void *) и intmax_t / uintmax_t (самый большой тип).

И если по какой-то причине у вашего компилятора нет < stdint.h > (поскольку IIRC - это стандарт C, а не C ++), вы можете использовать Boost's boost / cstdint.hpp (который вы можете использовать, даже если у вас есть < stdint.h > ;, поскольку в этом случае он должен просто пересылать в заголовок компилятора) .

Выберите:

long long (& # 8211; 9,223,372,036,854,775,808 до 9,223,372,036,854,775,807)

unsigned long long: (от 0 до 18 446 744 073 709 551 615)

Если вам нужны действительно длинные целые числа (произвольная точность), вы также можете попробовать библиотеку gmp , которая также предоставляет интерфейс на основе классов C ++.

long unsigned long - длина не менее 64 бит

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top