IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> C, GCC, Применение 64 бит переменных
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


Как использовать 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’

Сообщение отредактировано: SKVOZNJAK -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Сделай так:
w2=18446744073709551615UL;


и ставь, плз, правильные тэги..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
Сделай так:
Это проблемы не решает. Вот правильный код:
#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;
}
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 14:26
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name