Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / С++ есть ли аналог типу long в с#? / 12 сообщений из 12, страница 1 из 1
12.11.2016, 17:58
    #39346126
Arbit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
Здравствуйте уважаемые Гуру!

Есть ли в С++ тип для хранения больших целых чисел аналогичный long или ulong в с#?

long -9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807
ulong 0 .. 18,446,744,073,709,551,615

Например:

Код: c#
1.
long res = 13584681*13584681     // В С# дает результат 184543557871761



Код: plaintext
1.
long res = 13584681*13584681  //В С++ дает результат 1698064529


Мне нужно получить в С++ результат такой же как в С#. то есть 184543557871761
приложение win32

Заранее благодарен.
...
Рейтинг: 0 / 0
12.11.2016, 18:08
    #39346128
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
Стандартного - нет. Большинство компиляторов поддерживает __mi128.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2016, 18:09
    #39346129
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
Arbitlong -9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807
Хотя на это хватит и long long int.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2016, 18:17
    #39346132
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
long long или int64_t
...
Рейтинг: 0 / 0
12.11.2016, 18:22
    #39346134
Arbit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
Dima Tlong long или int64_t

long long тоже дает неверный результат
а int64_t как объявить?
...
Рейтинг: 0 / 0
12.11.2016, 18:35
    #39346141
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
Arbitlong long тоже дает неверный результат
Ты либо неправильно выводишь либо неправильно задаёшь константы:

Код: sql
1.
2.
3.
4.
long long res = 13584681LL*13584681LL;
printf("res = %lld\n", res);

res = 184543557871761


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2016, 18:58
    #39346150
Arbit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
Dimitry Sibiryakov, спасибо большое!

Я неправильно задавал константы
Код: plaintext
1.
long long res = 13584681*13584681;


вместо
long long res = 13584681 LL *13584681 LL

Вопрос закрыт

Еще раз Спасибо.
...
Рейтинг: 0 / 0
12.11.2016, 19:01
    #39346151
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
ArbitЯ неправильно задавал константы
В этом случае ты должен был получить предупреждение от компилятора:
Код: sql
1.
2.
3.
4.
ll.cpp: In function 'int main()':
ll.cpp:5:25: warning: integer overflow in expression [-Woverflow]
  long long res = 13584681*13584681;
                          ^


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2016, 19:04
    #39346152
Arbit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
Dimitry Sibiryakov,
Странно, компилятор не ругался. Просто дал неверный результат в отладке
Студия 2013
...
Рейтинг: 0 / 0
12.11.2016, 19:13
    #39346157
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
ArbitDima Tlong long или int64_t

long long тоже дает неверный результат
а int64_t как объявить?

Код: plaintext
1.
#include <stdint.h>


но int64_t это и есть long long
...
Рейтинг: 0 / 0
12.11.2016, 19:14
    #39346158
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
ArbitDimitry Sibiryakov,
Странно, компилятор не ругался. Просто дал неверный результат в отладке
Студия 2013
Ничего странного, С/С++ это не C#. Компилятор не заморачивается на переполнения.
...
Рейтинг: 0 / 0
13.11.2016, 22:20
    #39346510
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
С++ есть ли аналог типу long в с#?
Dima TНичего странного, С/С++ это не C#. Компилятор не заморачивается на переполнения.уровень выдачи предупреждений повысь, и будет заморачиваться
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / С++ есть ли аналог типу long в с#? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]