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

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

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

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

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

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

C++ Создать абстрактный тип данных - класс вектор
Как создать свой собственный тип на C++? C++
Создать абстрактный тип данных - класс вектор C++
C++ Создать тип данных Многоразрядное число
Не получается создать свой тип данных C++
Создать тип данных своего размера C++
Целочисленный тип данных для 10^50 C++
Как реализовать свой тип данных C++
C++ Как создать свой целочисленный тип данных с пределом от 0 до 500
C++ Создать свой поток данных
C++ Создать свой тип данных
Свой тип данных для перегрузки функций C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
13.09.2011, 12:53     Создать свой целочисленный тип данных #2
Сделай свою запаковку и распаковку в стандартный unsigned int
solar_wind
755 / 746 / 42
Регистрация: 06.07.2009
Сообщений: 2,967
Завершенные тесты: 1
13.09.2011, 12:58     Создать свой целочисленный тип данных #3
fenix117, Если это одно значение, то выигрыша не будет никакого, дискретность тех же указателей до байта....а вот если это например массив таких значений, тогда можно оптимизировать память и написать класс, который будет с этими данными работать.
Jupiter
Каратель
Эксперт С++
6550 / 3970 / 226
Регистрация: 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;
};
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
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)
Jupiter
Каратель
Эксперт С++
6550 / 3970 / 226
Регистрация: 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.
Yandex
Объявления
14.09.2011, 10:32     Создать свой целочисленный тип данных
Ответ Создать тему
Опции темы

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