Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
BigLow
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
#1

Что имеет ввиду Страуструп?

14.08.2013, 19:06. Просмотров 404. Ответов 5
Метки нет (Все метки)

Цитата Страуструпа, Язык программирования C++. Специальное издание:

Беззнаковые (unsigned) целые типы идеальны для трактовки блоков памяти как
битовых массивов. Использование unsigned вместо int с целью заполучить лишний
бит для представления целых положительных значений почти всегда является
неудачным решением.
Т.е. если нужны только беззнаковые целые, то unsigned - неудачное решение ?


А попытки гарантировать положительность числовых
значений объявлением целой переменной с модификатором unsigned опровергаются
правилами неявных преобразований типов (§С.6.1, §С.6.2.1).
если правильно понял, то в арифметических операциях unsigned может потеряться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2013, 19:06
Ответы с готовыми решениями:

"Имена, начинающиеся с подчеркивания, зарезервированы для специфических нужд" - что Страуструп имел ввиду?
"Имена, начинающиеся с символа подчеркивания, зарезервированы для специфических...

Задание из книги Р.Лафоре. Что автор имел ввиду?
Здравствуйте! Добрался до 7-й главы книги Лафоре и мне непонятно что имел...

Упражнение из "Философия С++" Б. Эккель т. 1. Не понимаю что имеется ввиду.
#define FIELD(a) char* a##_string; int a##_size; Измените макрос FIELD(),...

Доказать, что рекурсивная последовательность имеет предел
Вот заданьице: Доказать, что рекурсивная последовательность имеет предел...

Верно ли, что только одна из логических переменных a и b имеет значение true
Присвоить логической переменной значение логического выражения, истинного при...

5
0x10
2571 / 1751 / 288
Регистрация: 24.11.2012
Сообщений: 4,377
14.08.2013, 19:09 #2
Программа компилируется без ошибок и предупреждений, при этом в функцию f попало некорректное значение, несмотря на тип unsigned.

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
void f(unsigned n)
{
    std::cout << n << std::endl;
}
 
int main()
{
    f(-1);
}
1
Kuzia domovenok
2262 / 2031 / 459
Регистрация: 25.03.2012
Сообщений: 7,183
Записей в блоге: 1
14.08.2013, 19:10 #3
Цитата Сообщение от BigLow Посмотреть сообщение
Т.е. если нужны только беззнаковые целые, то unsigned - неудачное решение ?
почему?
Цитата Сообщение от BigLow Посмотреть сообщение
если правильно понял, то в арифметических операциях unsigned может потеряться?
нет, это значит, что
C++
1
2
3
4
unsigned char a=0;
unsigned char b=1;
unsigned char c=a-b;//с=255
char d=c;//d=-1
1
Croessmah
++Ͻ
14535 / 8296 / 1558
Регистрация: 27.09.2012
Сообщений: 20,359
Записей в блоге: 3
Завершенные тесты: 1
14.08.2013, 19:22 #4
Цитата Сообщение от 0x10 Посмотреть сообщение
некорректное значение, несмотря на тип unsigned.
Значение корректно
0
0x10
2571 / 1751 / 288
Регистрация: 24.11.2012
Сообщений: 4,377
14.08.2013, 19:28 #5
Croessmah, предлагаю не придираться к словам, и так понятно о чем я говорил.
0
Croessmah
++Ͻ
14535 / 8296 / 1558
Регистрация: 27.09.2012
Сообщений: 20,359
Записей в блоге: 3
Завершенные тесты: 1
14.08.2013, 20:39 #6
Цитата Сообщение от 0x10 Посмотреть сообщение
Croessmah, предлагаю не придираться к словам, и так понятно о чем я говорил.
Понятно. Вот с signed:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <numeric>
 
void f(int n)
{
    std::cout << n << std::endl;
}
 
int main()
{
    f(std::numeric_limits<unsigned int>().max());
}
аргумент корректен - это ошибка программиста.
0
14.08.2013, 20:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2013, 20:39

Задача:Страуструп. 4.11.4
1.Напишите программу,которая печатает символы от 'a' до 'z' и цифры от '0' до...

Страуструп. задание
насколько я понял задание - есть класс class STC { unexpected_handler...

Email(1) Страуструп
Необходима помощь, занимаюсь по Страуструпу. Смотрите 4 операцию! Задание:...


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

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

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