Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
Мы сами всего творцы!
 Аватар для Alexell
60 / 23 / 1
Регистрация: 06.06.2012
Сообщений: 151

Выделение памяти или непонятный массив типа enum

23.04.2017, 10:54. Показов 4609. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане.

Занимаюсь улучшением одного open-source проекта на небольшом уровне, исходный код большой и сложный, делаю лишь небольшие улучшения какие получается.
Сейчас в программе имеется некий список локаций, для них есть 2 файла - locations.cpp и locations.h
В них описаны классы и структуры локаций. Смысл в том, что нам нужно добавить еще локаций, и тут я столкнулся с одной проблемой.

В locations.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
FeatureNameEntry FeatureNames[] =
{
    { "AA", Location::Crater },
    { "VA", Location::Vallis },
    { "MO", Location::Mons },
    { "PM", Location::Planum },
    { "CM", Location::Chasma },
    { "PE", Location::Patera },
    { "ME", Location::Mare },
    { "RU", Location::Rupes },
    { "TE", Location::Tessera },
    { "RE", Location::Regio },
    { "CH", Location::Chaos },
    { "TA", Location::Terra },
    { "AS", Location::Astrum },
    { "CR", Location::Corona },
    { "DO", Location::Dorsum },
    { "FO", Location::Fossa },
    { "CA", Location::Catena },
    { "MN", Location::Mensa },
    { "RI", Location::Rima },
    { "UN", Location::Undae },
    { "TH", Location::Tholus },
    { "RT", Location::Reticulum },
    { "PL", Location::Planitia },
    { "LI", Location::Linea },
    { "FL", Location::Fluctus },
    { "FR", Location::Farrum },
    { "LF", Location::LandingSite },
    { "ER", Location::EruptiveCenter },
    { "IN", Location::Insula },
    { "XX", Location::Other },
    { "City", Location::City },
    { "Observatory", Location::Observatory },
    { "Landing Site", Location::LandingSite },
    { "Crater", Location::Crater },
};
И я думаю, о, да тут все просто, добавим десять новых локаций без проблем. Потом захожу в locations.h и вижу это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    enum FeatureType
    {
        City           = 0x00000001,
        Observatory    = 0x00000002,
        LandingSite    = 0x00000004,
        Crater         = 0x00000008,
        Vallis         = 0x00000010,
        Mons           = 0x00000020,
        Planum         = 0x00000040,
        Chasma         = 0x00000080,
        Patera         = 0x00000100,
        Mare           = 0x00000200,
        Rupes          = 0x00000400,
        Tessera        = 0x00000800,
        Regio          = 0x00001000,
        Chaos          = 0x00002000,
        Terra          = 0x00004000,
        Astrum         = 0x00008000,
        Corona         = 0x00010000,
        Dorsum         = 0x00020000,
        Fossa          = 0x00040000,
        Catena         = 0x00080000,
        Mensa          = 0x00100000,
        Rima           = 0x00200000,
        Undae          = 0x00400000,
        Tholus         = 0x00800000,
        Reticulum      = 0x01000000,
        Planitia       = 0x02000000,
        Linea          = 0x04000000,
        Fluctus        = 0x08000000,
        Farrum         = 0x10000000,
        EruptiveCenter = 0x20000000,
        Insula         = 0x40000000,
        Other          = 0x80000000,
    };
И вот тут я застрял. Что это за значения такие в шестнадцатеричном виде? Выделение памяти? Честно говоря понятия не имею.

Чтобы вам было проще понять устройство всего этого дела, я приведу почти полностью коды этих файлов.
locations.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
using namespace Eigen;
using namespace std;
 
 
static map<string, uint32> FeatureNameToFlag;
static bool featureTableInitialized = false;
 
struct FeatureNameEntry
{
    const char* name;
    uint32 flag;
};
 
FeatureNameEntry FeatureNames[] =
{
    { "AA", Location::Crater },
    { "VA", Location::Vallis },
    { "MO", Location::Mons },
    { "PM", Location::Planum },
    { "CM", Location::Chasma },
    { "PE", Location::Patera },
    { "ME", Location::Mare },
    { "RU", Location::Rupes },
    { "TE", Location::Tessera },
    { "RE", Location::Regio },
    { "CH", Location::Chaos },
    { "TA", Location::Terra },
    { "AS", Location::Astrum },
    { "CR", Location::Corona },
    { "DO", Location::Dorsum },
    { "FO", Location::Fossa },
    { "CA", Location::Catena },
    { "MN", Location::Mensa },
    { "RI", Location::Rima },
    { "UN", Location::Undae },
    { "TH", Location::Tholus },
    { "RT", Location::Reticulum },
    { "PL", Location::Planitia },
    { "LI", Location::Linea },
    { "FL", Location::Fluctus },
    { "FR", Location::Farrum },
    { "LF", Location::LandingSite },
    { "ER", Location::EruptiveCenter },
    { "IN", Location::Insula },
    { "XX", Location::Other },
    { "City", Location::City },
    { "Observatory", Location::Observatory },
    { "Landing Site", Location::LandingSite },
    { "Crater", Location::Crater },
};
 
 
Location::Location() :
    parent(NULL),
    position(Vector3f::Zero()),
    size(0.0f),
    importance(-1.0f),
    featureType(Other),
    overrideLabelColor(false),
    labelColor(1.0f, 1.0f, 1.0f),
    infoURL(NULL)
{
}
 
Location::~Location()
{
    if (infoURL != NULL)
        delete infoURL;
}
 
 
string Location::getName(bool i18n) const
{
    if (!i18n || i18nName == "") return name;
    return i18nName;
}
 
 
void Location::setName(const string& _name)
{
    name = _name;
    i18nName = _(_name.c_str()); 
    if (name == i18nName) i18nName = "";
}
 
 
Vector3f Location::getPosition() const
{
    return position;
}
 
 
void Location::setPosition(const Vector3f& _position)
{
    position = _position;
}
 
 
float Location::getSize() const
{
    return size;
}
 
 
void Location::setSize(float _size)
{
    size = _size;
}
 
 
float Location::getImportance() const
{
    return importance;
}
 
 
void Location::setImportance(float _importance)
{
    importance = _importance;
}
 
 
string Location::getInfoURL() const
{
    return "";
}
 
 
void Location::setInfoURL(const string&)
{
}
 
 
uint32 Location::getFeatureType() const
{
    return featureType;
}
 
 
void Location::setFeatureType(uint32 _featureType)
{
    featureType = _featureType;
}
 
 
static void initFeatureTypeTable()
{
    featureTableInitialized = true;
 
    for (int i = 0; i < (int)(sizeof(FeatureNames) / sizeof(FeatureNames[0])); i++)
    {
        FeatureNameToFlag[string(FeatureNames[i].name)] = FeatureNames[i].flag;
    }
}
 
 
uint32 Location::parseFeatureType(const string& s)
{
    if (!featureTableInitialized)
        initFeatureTypeTable();
 
    int flag = FeatureNameToFlag[s];
    return flag != 0 ? flag : (uint32) Other;
}
 
 
Body* Location::getParentBody() const
{
    return parent;
}
 
 
void Location::setParentBody(Body* _parent)
{
    parent = _parent;
}
 
 
/*! Get the position of the location relative to its body in 
 *  the J2000 ecliptic coordinate system.
 */
Vector3d Location::getPlanetocentricPosition(double t) const
{
    if (parent == NULL)
    {
        return position.cast<double>();
    }
    else
    {
        Quaterniond q = parent->getEclipticToBodyFixed(t);
        return q.conjugate() * position.cast<double>();
    }
}
 
 
Vector3d Location::getHeliocentricPosition(double t) const
{
    if (parent == NULL)
    {
        return position.cast<double>();
    }
    else
    {
        return parent->getAstrocentricPosition(t) + getPlanetocentricPosition(t);
    }
 
}
locations.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
class Location
{
 public:
    Location();
    virtual ~Location();
 
    std::string getName(bool i18n = false) const;
    void setName(const std::string&);
 
    Eigen::Vector3f getPosition() const;
    void setPosition(const Eigen::Vector3f&);
 
    float getSize() const;
    void setSize(float);
 
    float getImportance() const;
    void setImportance(float);
 
    uint32 getFeatureType() const;
    void setFeatureType(uint32);
 
    std::string getInfoURL() const;
    void setInfoURL(const std::string&);
 
    bool isLabelColorOverridden() const { return overrideLabelColor; }
    void setLabelColorOverridden(bool override) { overrideLabelColor = override; }
 
    Color getLabelColor() const { return labelColor; }
    void setLabelColor(Color color) { labelColor = color; }
 
    void setParentBody(Body*);
    Body* getParentBody() const;
 
    Eigen::Vector3d getPlanetocentricPosition(double) const;
    Eigen::Vector3d getHeliocentricPosition(double) const;
 
    static uint32 parseFeatureType(const std::string&);
 
    enum FeatureType
    {
        City           = 0x00000001, //1
        Observatory    = 0x00000002, //2
        LandingSite    = 0x00000004, //4
        Crater         = 0x00000008, //8
        Vallis         = 0x00000010, //16
        Mons           = 0x00000020, //32
        Planum         = 0x00000040, //64
        Chasma         = 0x00000080, //128
        Patera         = 0x00000100, //...
        Mare           = 0x00000200,
        Rupes          = 0x00000400,
        Tessera        = 0x00000800,
        Regio          = 0x00001000,
        Chaos          = 0x00002000,
        Terra          = 0x00004000,
        Astrum         = 0x00008000,
        Corona         = 0x00010000,
        Dorsum         = 0x00020000,
        Fossa          = 0x00040000,
        Catena         = 0x00080000,
        Mensa          = 0x00100000,
        Rima           = 0x00200000,
        Undae          = 0x00400000,
        Tholus         = 0x00800000, // Small domical mountain or hill
        Reticulum      = 0x01000000,
        Planitia       = 0x02000000,
        Linea          = 0x04000000,
        Fluctus        = 0x08000000,
        Farrum         = 0x10000000,
        EruptiveCenter = 0x20000000, // Active volcanic centers on Io
        Insula         = 0x40000000, // Islands
        Other          = 0x80000000,
    };
 
 private:
    Body* parent;
    std::string name;
    std::string i18nName;
    Eigen::Vector3f position;
    float size;
    float importance;
    uint32 featureType;
    bool overrideLabelColor;
    Color labelColor;
    std::string* infoURL;
};
Пожалуйста, если кто-нибудь примерно поймет как это все устроено, подскажите как мне добавить еще 10, 20 или 30 локаций, т.е. какие значения писать в locations.h ? Я буду премного благодарен вам за помощь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2017, 10:54
Ответы с готовыми решениями:

Выделение памяти построчно или куском. Массив C++
Здравствуйте! Привожу следующий код: int H = 20000, W = 20000, y, x; int **rows; //ВЫДЕЛЕНИЕ ПАМЯТИ ПОСТРОЧНО ...

Создать запрос с использованием типа данных enum или схожим с ним
Здравствуйте! есть ли в Interbase тип данных перечисление? мне необходимо создать таблицу Темы, которая состоит из 3 столбцов: шифр,...

Выделение памяти (CodeGear RAD Studio 2009 - C++ builder). Выделение памяти - консоль vs SDIApp
Есть определенный класс - длинная арифметика. Не идеальный - хранение данных исполнено в виде динамического массива типа short int, каждая...

35
Мы сами всего творцы!
 Аватар для Alexell
60 / 23 / 1
Регистрация: 06.06.2012
Сообщений: 151
25.04.2017, 14:14  [ТС]
Студворк — интернет-сервис помощи студентам
Max Dark, код Celestia обновлен до VS 2017, там будет работать предложенный вами вариант?
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
25.04.2017, 14:18
Цитата Сообщение от Alexell Посмотреть сообщение
там будет работать предложенный вами вариант?
Да, VS2017 поддерживает эту часть стандарта C++11
https://msdn.microsoft.com/ru-... 67368.aspx
0
Мы сами всего творцы!
 Аватар для Alexell
60 / 23 / 1
Регистрация: 06.06.2012
Сообщений: 151
25.04.2017, 14:22  [ТС]
Max Dark, спасибо за информацию. Буду пробовать.
0
Мы сами всего творцы!
 Аватар для Alexell
60 / 23 / 1
Регистрация: 06.06.2012
Сообщений: 151
10.05.2017, 12:03  [ТС]
Max Dark, снова привет. Не было возможности заняться этим вопросом ранее. Слушай, в целом что делать я понимаю, однако не понимаю вот чего: чем эти числа отличаются? Ты дал всего 3 и я не могу найти никакой связи, чтобы добавить еще 10-20 новых локаций...
Число 0x0000000210000000011 больше 0x000000010000000011 почти в 33 раза (в десятичной системе). А 0x800000000000000011 вообще не переводится в десятичную систему по человечески. Подскажи логику увеличения этих чисел пожалуйста.
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,922
Записей в блоге: 14
10.05.2017, 12:20
Alexell, там, похоже, очепятка случилась. Должно быть так:
C++
1
2
Some1 = 0x0000000100000000ll,
Some2 = 0x0000000200000000ll,
Логика такая:
C++
1
2
3
4
5
6
7
8
City           = (1ll << 0),
Observatory    = (1ll << 1),
LandingSite    = (1ll << 2),
...
Other          = (1ll << 31),
...
Some1 = (1ll << 32),
Some2 = (1ll << 33)
Буквы l с единицей 1 не путать.

Каждое значение может иметь установленным в единицу только 1 бит. Тогда при логическом сложении биты друг другу мешать не будут.
В 0x0F, например, очевидно, что установлены биты 0, 1, 2 и 3, то есть значения enum с числами 0x01, 0x02, 0x04, 0x08.

И всё переводится по человечески. Если калькулятор не тащит, это его проблемы

Добавлено через 7 минут
1 << 0 = 20
1 << 1 = 21
1 << 2 = 22
...
1 << 31 = 231
1
Мы сами всего творцы!
 Аватар для Alexell
60 / 23 / 1
Регистрация: 06.06.2012
Сообщений: 151
10.05.2017, 12:35  [ТС]
Rius, если я наконец правильно понял с возведением в степень, то описанное ниже правильно?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* пропущено */
Farrum = 0x10000000,
EruptiveCenter = 0x20000000,
Insula = 0x40000000,
Other = 0x8000000000000000ll, (???)
Some1 = 0x0000000100000000ll,
Some2 = 0x0000000200000000ll,
Some3 = 0x0000000400000000ll,
Some4 = 0x0000000800000000ll,
Some5 = 0x0000001000000000ll,
Some6 = 0x0000002000000000ll,
Some7 = 0x0000004000000000ll,
Some8 = 0x0000008000000000ll,
Some9 = 0x0000010000000000ll,
Some10 = 0x0000200000000000ll,
Some11 = 0x0000400000000000ll,
Some12 = 0x0000800000000000ll,
Some13 = 0x0001000000000000ll,
Some14 = 0x0002000000000000ll,
Some15 = 0x0004000000000000ll,
Some16 = 0x0008000000000000ll,
Some17 = 0x0010000000000000ll,
Some18 = 0x0020000000000000ll,
Some19 = 0x0040000000000000ll,
Some20 = 0x0080000000000000ll,
Some21 = 0x0100000000000000ll,
Some22 = 0x0200000000000000ll,
Some23 = 0x0400000000000000ll,
Some24 = 0x0800000000000000ll,
Some25 = 0x1000000000000000ll,
Some26 = 0x2000000000000000ll,
Some27 = 0x4000000000000000ll,
Some28 = 0x8000000000000000ll,  (???)
Some29 = 0x1000000000000000ll,  (???)
Some30 = (???)
Some31 = (???)
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,922
Записей в блоге: 14
10.05.2017, 12:38
Неа, получилось Some25 == Some29

Попробуйте такую запись применить:
C++
1
(1ll << число)
Тогда в куче нулей не запутаетесь.
1
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
10.05.2017, 12:42
Цитата Сообщение от Alexell Посмотреть сообщение
А 0x800000000000000011 вообще не переводится в десятичную систему по человечески.
на конце не единицы, а LL - указание компилятору использовать long long int для значения
Цитата Сообщение от Alexell Посмотреть сообщение
Подскажи логику увеличения этих чисел пожалуйста.
так ка это флаги, то в них должен быть установлен только 1 бит.
В каждой следующей константе этот бит смещается на один влево от предыдущего.
там в примере была ошибка - лишняя единица в константе Some2
C++
1
2
3
4
5
6
7
8
9
10
11
12
enum FeatureType:feature_t // <<
    {
        City           = 0x00000001,
/* пропущено */
        Other          = 0x8000000000000000ull, // максимальное значение - установлен старший бит
        // << Добавленные значения >>
        Some1          = 0x0000000100000000ull,
        Some2          = 0x0000000200000000ull, // Some2 = Some1 << 1;
        Some3          = 0x0000000400000000ull, // Some3 = Some2 << 1;
        Some3          = 0x0000000800000000ull, // и так далее
        Some4          = 0x0000001000000000ull,
    };
0
Мы сами всего творцы!
 Аватар для Alexell
60 / 23 / 1
Регистрация: 06.06.2012
Сообщений: 151
10.05.2017, 12:44  [ТС]
Rius, я просто умножал каждое число на 2 и конец настал как раз на 28 пункте, как дальше считать, не знаю.
Может так?
Some28 = 0x8000000000000000ll
Some28 = 0x2000000000000030ll
Some30 = 0x4000000000000060ll
0
10.05.2017, 12:48

Не по теме:

Alexell, гадать не надо, ответы выше.
20, 21, 22, ..., 263.

0
Мы сами всего творцы!
 Аватар для Alexell
60 / 23 / 1
Регистрация: 06.06.2012
Сообщений: 151
10.05.2017, 12:50  [ТС]
Rius, ну так я не гадал, калькулятор выдает такие числа при продолжении умножения на 2, но я не знаю правильные ли они.
0
Эксперт .NET
 Аватар для Rius
13838 / 7880 / 1706
Регистрация: 25.05.2015
Сообщений: 23,922
Записей в блоге: 14
10.05.2017, 13:00
Очевидно, неправильные. Правильный калькулятор не может такого выдать.
1
*
2
=
=
=
=
=
...
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
10.05.2017, 13:04
Цитата Сообщение от Alexell Посмотреть сообщение
но я не знаю правильные ли они.
у него переполнение возникает
Вам подсказали нормальное решение
генератор следующих значений
http://ideone.com/0djvCX
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <iomanip>
#include <cstdint>
using namespace std;
 
int main() {
    for(uint64_t key = 1ull << 31; key < (1ull << 63); key <<= 1)
    {
        std::cout << hex << key << endl;
    }
    return 0;
}
0
Мы сами всего творцы!
 Аватар для Alexell
60 / 23 / 1
Регистрация: 06.06.2012
Сообщений: 151
10.05.2017, 13:15  [ТС]
Max Dark,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Other = 0x8000000000000000ull
Some1 = 0x0000000100000000ull,
Some2 = 0x0000000200000000ull,
Some3 = 0x0000000400000000ull,
Some4 = 0x0000000800000000ull,
Some5 = 0x0000001000000000ull,
Some6 = 0x0000002000000000ull,
Some7 = 0x0000004000000000ull,
Some8 = 0x0000008000000000ull,
Some9 = 0x0000010000000000ull,
Some10 = 0x0000200000000000ull,
Some11 = 0x0000400000000000ull,
Some12 = 0x0000800000000000ull,
Some13 = 0x0001000000000000ull,
Some14 = 0x0002000000000000ull,
Some15 = 0x0004000000000000ull,
Some16 = 0x0008000000000000ull,
Some17 = 0x0010000000000000ull,
Some18 = 0x0020000000000000ull,
Some19 = 0x0040000000000000ull,
Some20 = 0x0080000000000000ull,
Some21 = 0x0100000000000000ull,
Some22 = 0x0200000000000000ull,
Some23 = 0x0400000000000000ull,
Some24 = 0x0800000000000000ull,
Some25 = 0x1000000000000000ull,
Some26 = 0x2000000000000000ull,
Some27 = 0x4000000000000000ull,
Some28 = 0x8000000000000000ull,
Вот такие значения скажите пожалуйста, все ли правильные? Вроде бы да.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2551 / 2065 / 971
Регистрация: 09.10.2013
Сообщений: 4,904
Записей в блоге: 4
10.05.2017, 13:25
Alexell, так вот лучше.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//                   //   8765432187654321
Other  = 1ull << 63, // 0x8000000000000000ull
Some1  = 1ull << 31, // 0x0000000100000000ull,
Some2  = 1ull << 32, // 0x0000000200000000ull,
Some3  = 1ull << 33, // 0x0000000400000000ull,
Some4  = 1ull << 34, // 0x0000000800000000ull,
Some5  = 1ull << 35, // 0x0000001000000000ull,
Some6  = 1ull << 36, // 0x0000002000000000ull,
Some7  = 1ull << 37, // 0x0000004000000000ull,
Some8  = 1ull << 38, // 0x0000008000000000ull,
Some9  = 1ull << 39, // 0x0000010000000000ull,
Some10 = 1ull << 40, // 0x0000020000000000ull,
Some11 = 1ull << 41, // 0x0000040000000000ull,
Some12 = 1ull << 42, // 0x0000080000000000ull,
Some13 = 1ull << 43, // 0x0000100000000000ull,
Some14 = 1ull << 44, // 0x0000200000000000ull,
Some15 = 1ull << 45, // 0x0000400000000000ull,
Some16 = 1ull << 46, // 0x0000800000000000ull,
Some17 = 1ull << 47, // 0x0001000000000000ull,
Some18 = 1ull << 48, // 0x0002000000000000ull,
Some19 = 1ull << 49, // 0x0004000000000000ull,
Some20 = 1ull << 50, // 0x0008000000000000ull,
Some21 = 1ull << 51, // 0x0010000000000000ull,
Some22 = 1ull << 52, // 0x0020000000000000ull,
Some23 = 1ull << 53, // 0x0040000000000000ull,
Some24 = 1ull << 54, // 0x0080000000000000ull,
Some25 = 1ull << 55, // 0x0100000000000000ull,
Some26 = 1ull << 56, // 0x0200000000000000ull,
Some27 = 1ull << 57, // 0x0400000000000000ull,
Some28 = 1ull << 58, // 0x0800000000000000ull,
0
Мы сами всего творцы!
 Аватар для Alexell
60 / 23 / 1
Регистрация: 06.06.2012
Сообщений: 151
10.05.2017, 13:26  [ТС]
Max Dark, аа, даже так? Я сначала не так понял описанное выше. Спасибо, будем пробовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2017, 13:26

Алгоритм выделение динамической памяти под переменные различного типа
послезавтра экзамен, но я не могу найти в интернете ответы на эти вопросы: если знаете где искать, или знате сами ответы, просьба помочь...

Enum или enum class и где его располагать
Для удобства хочу сделать перечисление уровней через enum. Но запутался, как правильно. Просьба подсказать простым языком. 1. В чём...

Массив строк, выделение памяти
Здравствуйте! #include &lt;CONIO.H&gt; #include &lt;IOSTREAM.H&gt; void main() { char *val; int n; cout&lt;&lt;&quot;n?&quot;; cin&gt;&gt;n; val=new...

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

Выделение памяти под массив
Требуется выделить память под матрицу. Будет ли следующий код работать корректно? //глобальная область int x_size = 3; ...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru