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

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

PS Простите за "нубизм" но все: D

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 153
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

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

Используйте <stdint>, как описано в ответе CesarB для решения портативный. GCC не понимает __int64, MSVC6 (и, возможно, 2003) не понимает "long long", и ни то, ни другое не является стандартом.

ephemient 18.10.2008 23:48

если вам требуется более 4 байтов, это не самый чистый способ.

Dustin Getz 18.10.2008 23:49

Фактически, «длинный длинный» является в стандарте C99 и будет в C++ 0x, согласно Википедии.

CesarB 18.10.2008 23:55

unsigned long long - не менее 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 boost / cstdint.hpp (который вы можете использовать, даже если у вас есть <stdint. h>, так как в этом случае он должен просто перенаправить в заголовок компилятора).

<stdint.h> находится в C99, а не в старых стандартах C, чего бы он ни стоил. Более того, реализация должна предоставлять uint64_t и int64_t тогда и только тогда, когда она предоставляет соответствующий 64-битный целочисленный тип. Реализация C99 не обязательна, но весьма вероятна.

Chris Young 19.10.2008 19:01

Сделайте ваш выбор:

long long (от -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++.

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