Помощь - Поиск - Пользователи - Календарь
Полная версия: C, GCC, Применение 64 бит переменных
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
SKVOZNJAK
Как использовать 64 битные целочисленные переменные с диапазонами
от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 и
от 0 до 18,446,744,073,709,551,615
Не получается накормить компилятор соответствующими типами переменных.
Код

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

unsigned long long w2;
signed long long q2;


int main ()
{
q2=9223372036854775807;
w2=18446744073709551615;
printf ("%d\n", q2);
printf ("%d\n", w2);
return 0;
}

Компиляция выдаёт ошибку:
z4.c: В функции ‘main’:
z4.c:11: предупреждение: целая константа слишком велика для типа ‘long’
z4.c:12:4: warning: integer constant is so large that it is unsigned
z4.c:12: предупреждение: эта десятичная константа является беззнаковой только в ISO C90
z4.c:12: предупреждение: целая константа слишком велика для типа ‘long’
Lapp
Сделай так:
w2=18446744073709551615UL;


и ставь, плз, правильные тэги..
volvo
Цитата
Сделай так:
Это проблемы не решает. Вот правильный код:
#include <stdint.h>
#include <inttypes.h>
#include <stdio.h>

uint64_t w2;
int64_t q2;


int main ()
{
q2=9223372036854775807LL;
w2=18446744073709551615ULL;

printf ("%10"PRId64"\n", q2);
printf ("%10"PRIu64"\n", w2);
return 0;
}
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.