![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| steven13 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 31.3.2005 Где: http://city.vin.c om.ua Репутация: нет Всего: нет |
Нужно создать свой тип целого числа.
В котором розряд состоит не из 10 числ а из восьми. Как этого можно добится: 0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,30,31...75,76,77,100,101,102,103... Так что-бы потом можно было с ним делать операции наналогично int. |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Создать свой класс, перегрузить операторы =,+,-,==,*,/ и прочие, проверяя на (0<i<8) при каждом вычислении, и запрограммировать восьмеричные операции.
Добавлено @ 06:47 Модератор:перенесено из C++:Системное программирование и Win32Api --------------------
|
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
Это кому нужно, партии и правительству?
А о восьмеричной системе счисления слыхал? http://www.gamaun.su/hsx/c/0002.html -------------------- |
|||
|
||||
| steven13 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 31.3.2005 Где: http://city.vin.c om.ua Репутация: нет Всего: нет |
Спасибо за ссылку, лучше стал понимать что нужно. Теперь хоть могу обяснить нормально. У меня дурдом с этими числами. Есть файл, в которов пишется в 16-ритчной системе, но значения там в 8-ричной системе, (максимум 7А).
Нужно его открыть, перевести в десятеричную систему, пользователь (или програма) меняет пару цыфру, а потом нужно в обратном порядке записать обратно. Если есть советы, внимательно выслушаю. |
||||
|
|||||
| LuckLess |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.9.2004 Репутация: 1 Всего: 1 |
чтото тупняк напал. в эту строчку пытался вЪехать минут 10. Можно поподроднее тут плз? Добавлено @ 10:15
как это 7A -> это значение в 8-ой системе , когда оно 16-ое. ух. щас рассплавлюсь.. |
||||
|
|||||
| steven13 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 31.3.2005 Где: http://city.vin.c om.ua Репутация: нет Всего: нет |
Вот число в 10-ричной - 200
Вот это число в 8-ричной - 310 Вот это число в 16 -ричной - C8 А ВОТ ТАК ОНО ЗАПИСАНО: 4E 01 Обратно переводится: (4Е= 78) + (01=122 ) = 200 |
|||
|
||||
| LuckLess |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.9.2004 Репутация: 1 Всего: 1 |
01=122 -- это как?
|
|||
|
||||
| De Gray |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 18.2.2005 Где: Регистрация? Репутация: нет Всего: 4 |
0100- либо 64 либо 256, но уж никак не 122, в крайнем случае 121
--------------------
Извяните, шо мы к вас за поможите обращаимси. |
|||
|
||||
| steven13 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 31.3.2005 Где: http://city.vin.c om.ua Репутация: нет Всего: нет |
Одна 16 ричная ячейка может принимать значения: от 00 до 7A если значение больше 122 (7A), на пример 123 то программа не пишет его как 7B, а начинает использовать уже вторую ячейку!!! И пишет его 00 01. |
|||
|
||||
| steven13 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 31.3.2005 Где: http://city.vin.c om.ua Репутация: нет Всего: нет |
Возможно так у нормальных людей!!!! Но здесь програма пишет в одну ячейку не больше 7А (включительно) то-есть 122. Моё предположение, что вводить данные нужно в десятеричной системе оказалось ошибочно. Вводить их нужно в восьмеричной системе. То-есть использовать 8 и 9 НЕЛЬЗЯ!!! Это упрощает задачу. Ципочка получаэтся такая: 1. Вовожу значение в восмеричной системе. 2. Программа их пишет в файл в "хитророй" Неполной 16-ричной системе. 1. Нужно считать это значение. 2. Декодировать в 8-ричную систему. 3. Работать с ним в 8-ричной системе. 4. Сохранить назад в том ненормальном формате. Вернулись к тому с чего начинали, нужно заставить Си правильно заботать с цифрами в восьмеричной системе. |
|||
|
||||
| pablo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 12.2.2005 Где: Вильнюс, Литва Репутация: 4 Всего: 6 |
Если пишеш в файл или на екран, то для подобных целей можно использовать модификаторы потоков (hex, oct, dec).
Потоки С++ в этом отношении достаточно умные и поймыт что тут имеем дело с 16 ричными, 8 ричными и 10 сыфрами. Просто при выводе надо указать что за числа вы выводите:
cout << hex << 17 << endl; 11 cout << oct << 9 << endl; 11 cout << dec << 11 << endl; 11 [/code] -------------------- Первый блин всегда похож на сферу, иногда бывает и куб. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |