The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблема long long"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблема long long" 
Сообщение от drone Искать по авторуВ закладки(??) on 13-Мрт-05, 19:49  (MSK)
Значит, ситуевина такая. Вот код:

long long test;
test= 5368709120;

При компиляции пишет:
error: integer constant is too large for "long" type

Но позвольте: тип "long long" - 64 бита(!)
При этом код:

long long test;
test= 1073741824;
test*= 5;
printf("%lld\n", test);

Работает (!!)

В чем прикол?
Заранее спасибо.

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Проблема long long" 
Сообщение от ААА emailИскать по авторуВ закладки on 13-Мрт-05, 20:16  (MSK)
>Значит, ситуевина такая. Вот код:
>
>long long test;
>test= 5368709120;
>
>При компиляции пишет:
>error: integer constant is too large for "long" type
>
>Но позвольте: тип "long long" - 64 бита(!)
>При этом код:
>
>long long test;
>test= 1073741824;
>test*= 5;
>printf("%lld\n", test);
>
>Работает (!!)
>
>В чем прикол?
>Заранее спасибо.
Пиши в багфиксы

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Проблема long long" 
Сообщение от Асен Тотин emailИскать по авторуВ закладки on 13-Мрт-05, 23:41  (MSK)
Привет,

Я не большой специалист по С, но по дефолту, кажется, все переменный - signed... т.е. у вас диапазон от -2^63 до +2^63 (приблизительно :). Ваше число не выходит ли за этот предел? И если указать unsigned, не помогает?

WWell,

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Проблема long long" 
Сообщение от sev emailИскать по авторуВ закладки(??) on 14-Мрт-05, 09:49  (MSK)
>>Значит, ситуевина такая. Вот код:
>>
>>long long test;
>>test= 5368709120;
>>
>>При компиляции пишет:
>>error: integer constant is too large for "long" type
>>
>>Но позвольте: тип "long long" - 64 бита(!)
>>При этом код:
>>
>>long long test;
>>test= 1073741824;
>>test*= 5;
>>printf("%lld\n", test);
>>
>>Работает (!!)
>>
>>В чем прикол?
>>Заранее спасибо.
>Пиши в багфиксы

Проблема не в типе переменной test, а в типе константы.
Надо писать: test= 5368709120ull;


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Проблема long long" 
Сообщение от drone Искать по авторуВ закладки(??) on 14-Мрт-05, 10:45  (MSK)
Спасибо, уже разобрался:

long long test= 107374182400LL

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру