Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
#1

Создать свой целочисленный тип данных - C++

13.09.2011, 12:52. Просмотров 1443. Ответов 5
Метки нет (Все метки)

Здравствуйте, у меня возник вопрос, можно ли создать например целочисленный тип данных, который может принимать только значения от 1 до 4 и выделять под него 2 бита (00-'1'; 01-'2'; 10-'3'; 11-'4'). Нас пока учили создавать новые типы через структуры на основе стандартных типов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2011, 12:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать свой целочисленный тип данных (C++):

Как создать свой целочисленный тип данных с пределом от 0 до 500 - C++
Доброе утро. Кто может подсказать, как создать персональный тип данных. Задумка вот в чем. Нужна программа, где по нажатию на "A"...

Создать свой тип данных - C++
Есть класс Bignum, который хранит большие числа: class Bignum { string digits; // Число }; Возможно ли сделать вот...

Не получается создать свой тип данных - C++
Всем привет! Подскажите почему компилятор ругается на эти три строчки? MyVector2D():x(0),y(0){} MyVector2D(float x, float...

Целочисленный тип данных для 10^50 - C++
Существует ли в C++ целочисленный тип данных, который вмещает 10^50?

Как создать свой собственный тип на C++? - C++
Здравствуйте!!! Возник вопрос как создать свой собственный тип на С++ который включат такие типы как int, string, double?

Как реализовать свой тип данных - C++
Здравсвтуйте,подскажите пожалуйста как реализовать с с++ свой тип данных. Допустим хочу завести массив,где каждому arr будет соответсвовать...

5
odip
Эксперт С++
7160 / 3222 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
13.09.2011, 12:53 #2
Сделай свою запаковку и распаковку в стандартный unsigned int
1
solar_wind
758 / 749 / 42
Регистрация: 06.07.2009
Сообщений: 2,976
Завершенные тесты: 1
13.09.2011, 12:58 #3
fenix117, Если это одно значение, то выигрыша не будет никакого, дискретность тех же указателей до байта....а вот если это например массив таких значений, тогда можно оптимизировать память и написать класс, который будет с этими данными работать.
1
Jupiter
Каратель
Эксперт С++
6565 / 3986 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.09.2011, 15:14 #4
C
1
2
3
4
5
6
struct bt {
    unsigned char a:2;
    unsigned char b:2;
    unsigned char c:2;
    unsigned char d:2;
};
1
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
14.09.2011, 04:19 #5
Jupiter, для битовых полей определёнными являются только int, signed int и unsigned int

C89(draft)
3.5.2.1 Structure and union specifiers

...

A bit-field may have type int , unsigned int , or signed int .
Whether the high-order bit position of a ``plain'' int bit-field is
treated as a sign bit is implementation-defined. A bit-field is
interpreted as an integral type consisting of the specified number of
bits.
Цитата Сообщение от fenix117
который может принимать только значения от 1 до 4 и выделять под него 2 бита
C
1
struct int_type { unsigned int val : 2; };
занимать она будет не два бита, а sizeof(unsigned int)
2
Jupiter
Каратель
Эксперт С++
6565 / 3986 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.09.2011, 10:32 #6
C++(2003)
9.6
...
9.6.3 A bit-field shall have integral or enumeration type (3.9.1). It is
implementation-defined whether a plain (neither explicitly signed nor unsigned) char, short, int or
long bit-field is signed or unsigned.
2
14.09.2011, 10:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2011, 10:32
Привет! Вот еще темы с ответами:

Свой тип данных для перегрузки функций - C++
Добрый день! Имеется широта и долгота - все FLOAT. Хочу сделать пару функций с одинаковым названием, но с разной реализацией для разных...

Создать свой поток данных - C++
Не могу понять, возможно ли как то создать свой поток данных? Знаю есть файловые потоки, cin cout cerr, а как быть если мне нужен поток...

Как сконвертировать свой тип в тип double? - C++
Можно ли конвертировать свой тип в тип doble? Если да, то каким способом?

Свой тип данных позволяющий хранить числа разрядностью в <= 30 - C++
Доброго времени суток! Возникла потребность иметь программу позволяющую производить арифметические действия с числами, разрядность...


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

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

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