Я пытаюсь использовать long для 12-значного числа, но он говорит, что "целочисленная константа слишком велика для" длинного "типа", и я попробовал это с C ++ и Processing (аналогично Java).Что происходит и что я должен использовать для этого?
long
В C и C ++ (в отличие от Java) размер long определяется реализацией. Иногда это 64 бита, иногда 32. В последнем случае вам достаточно места только для 9 десятичных цифр.
Для гарантии 64-битного типа вы можете использовать либо тип long long, либо тип фиксированной ширины, например int64_t.
long long
int64_t
Если вы указываете литеральную константу, вы должны использовать соответствующий спецификатор типа:
int i = 5; unsigned i = 6U; long int i = 12L; unsigned long int i = 13UL; long long int i = 143LL; unsigned long long int i = 144ULL; long double q = 0.33L; wchar_t a = L'a';
Я не знаю, в C ++, но в C есть заголовочный файл с именем <stdint.h>, который будет иметь целочисленные типы с количеством битов, которое вы хотите.беззнаковый аналог (uint8_t и т. д.).
<stdint.h>
Обновление: заголовок называется <cstdint> в C ++
<cstdint>
Попробуйте использовать long long в gcc или __int64 в msvc.
__int64