Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
i8086
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 9
#1

numeric_limits и int8_t - C++

11.07.2013, 17:58. Просмотров 682. Ответов 2
Метки нет (Все метки)

Eсли скомпилировать и запустить
C++
1
2
3
4
    auto max = numeric_limits<int8_t>::max();
    cout << max << endl << sizeof(max) << endl;
    std::bitset<8> x(max);
    std::cout << x;
То получаю вывод:
Bash
1
2
3
_кракозябра_
1
01111111
Eсли
C++
1
auto заменить на int
то вывод ожидаемый:
Bash
1
2
3
127
4
01111111
Максимальное значение int8_t не влазит в int8_t? О_о
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 17:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос numeric_limits и int8_t (C++):

Error C2371 'int8_t': redefinition; different basic types - C++
Всем доброе утро!:) Такая вот беда - Error C2371 'int8_t': redefinition; different basic types. Гуглила долго и нудно, но как...

numeric_limits<unsigned int>::digits - C++
при запуске такой скомпилиной проги на 32р. системе должно вывести bits in int: 32 а при запуске на 64р. системе bits in int: 64 так...

error: 'numeric_limits' is not a member of 'std' - C++
Как бороться с этой гогой?

Исправить код, вызывающий cin.ignore(numeric_limits<streamsize>::max()) - C++
Возможно многие знают что если использовать библиотеку windows.h, и функцию cin.ignore(numeric_limits&lt;streamsize&gt;::max(), '\n'); выдаётся...

C:\tsserver\Projects\cpp\codeblocks\MyComp\compiler\mmz\TArr ay.hpp|140|error: 'numeric_limits' is not a member of 'std'| - C++
C:\tsserver\Projects\cpp\codeblocks\MyComp\compiler\mmz\TArray.hpp|140|error: 'numeric_limits' is not a member of 'std'|

Не компилирует max в cin.ignore(numeric_limits<streamsize>::max(),'\n') - C++
Компилятор MSVS 2010, проблема с max, как мне это устранить? использовала define, но либо я не там ставила (и библиотеки тоже),...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
11.07.2013, 18:16 #2
i8086, Нет, просто идет преобразование в char, дико подозреваю, что это потому, что int8_t typedef на char в данной конкретной реализации компилятора. Собственно, чтобы вывести можно кастануть к short/int

C++
1
std::cout << static_cast<short>(max) << std::endl;
i8086
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 9
11.07.2013, 18:24  [ТС] #3
Ага, в stdint.h
C++
1
typedef unsigned char         uint8_t;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2013, 18:24
Привет! Вот еще темы с ответами:

Массив int8_t или NSData? - Objective-C
Кто что чаще используете? масив int8_t или NSData, вопрос не в том что правильно использовать))) а что чаще всего используете вы ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru