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

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

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

типы данных - C++

28.05.2012, 17:09. Просмотров 343. Ответов 8
Метки нет (Все метки)

уважаемые программисты, как отвести типу char 2 байта? пишу шахматы, 6 фигур, хочу, чтобы каждый бит отводился для определенной фигуры, + бит на цвет, + бит на "выделена ли", + бит на цвет клетки доски. то есть 1 байта не хватает. или может предложите другой вариант? дело в том, что в программе будут содержаться функции, которые будут определять путем сравнения битов, что именно содержится в клетке массива.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6111 / 5714 / 1849
Регистрация: 18.12.2011
Сообщений: 14,593
Завершенные тесты: 1
28.05.2012, 17:36     типы данных #2
1. Можно использовать Unicode: wchar.
2. В принципе, вместо char можно написать short, который занимает как раз 2 байта.
3. А лучше написать структуру и задать в ней каждый из битов:
C++
1
2
3
4
5
6
7
struct chess
{
    unsigned color:1;
    unsigned select:1;
    unsigned figura1:1;
   .....
};
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,897
Записей в блоге: 17
28.05.2012, 17:47     типы данных #3
zss,Ну тогда уже
C++
1
2
3
4
5
6
7
struct chess
{
   bool color;
   bool select;
   bool figura;
   .....
};
уважаемые программисты, как отвести типу char 2 байта?
Почему просто int-том не обойтись ?
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.05.2012, 17:58     типы данных #4
Переносимо:
C++
1
2
3
#include <cstdint>
//...
std::int16_t var;
zss
Модератор
Эксперт С++
 Аватар для zss
6111 / 5714 / 1849
Регистрация: 18.12.2011
Сообщений: 14,593
Завершенные тесты: 1
28.05.2012, 19:23     типы данных #5
Цитата Сообщение от Avazart Посмотреть сообщение
Ну тогда уже
C++
1
2
3
4
5
6
7
struct chess
{
 bool color;
 bool select;
 bool figura;
 .....
};
Каждый из этих bool будет занимать слово целиком.
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,897
Записей в блоге: 17
28.05.2012, 19:31     типы данных #6
Каждый из этих bool будет занимать слово целиком.
байт, вместо 4-x
zss
Модератор
Эксперт С++
 Аватар для zss
6111 / 5714 / 1849
Регистрация: 18.12.2011
Сообщений: 14,593
Завершенные тесты: 1
28.05.2012, 22:25     типы данных #7
C++
1
    cout << sizeof(chess) << endl;
для
C++
1
2
3
4
5
6
struct chess
{
    bool color;
    bool  select;
    bool  figura;
};
выдает 3, а для
C++
1
2
3
4
5
6
struct chess
{
    char color:1;
    char  select:1;
    char  figura:1;
};
выдает 1
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,897
Записей в блоге: 17
28.05.2012, 22:35     типы данных #8
А что означает запись ":1" ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2012, 23:26     типы данных
Еще ссылки по теме:

C++ Фундаментальные типы данных
ТЕСТЫ Типы данных на С C++
Основные типы данных C++
Типы данных и массив C++
Длинные типы данных C++

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

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
 Аватар для gray_fox
1249 / 1132 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
28.05.2012, 23:26     типы данных #9
Цитата Сообщение от Avazart Посмотреть сообщение
А что означает запись ":1" ?
1 бит.
Yandex
Объявления
28.05.2012, 23:26     типы данных
Ответ Создать тему
Опции темы

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