Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать своё исчисление! 1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17 
:(
    Опции темы
steven13
  Дата 3.4.2005, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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.
PM MAIL WWW ICQ   Вверх
chipset
Дата 3.4.2005, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Создать свой класс, перегрузить операторы =,+,-,==,*,/ и прочие, проверяя на (0<i<8) при каждом вычислении, и запрограммировать восьмеричные операции.
Добавлено @ 06:47
Модератор:перенесено из C++:Системное программирование и Win32Api


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Domestic Cat
Дата 3.4.2005, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 3
Всего: 172



Это кому нужно, партии и правительству?
А о восьмеричной системе счисления слыхал?
http://www.gamaun.su/hsx/c/0002.html


--------------------

PM   Вверх
steven13
Дата 3.4.2005, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.3.2005
Где: http://city.vin.c om.ua

Репутация: нет
Всего: нет



Цитата(Domestic @ 3.4.2005, 06:50)
Это кому нужно, партии и правительству?
А о восьмеричной системе счисления слыхал?
http://www.gamaun.su/hsx/c/0002.html

Спасибо за ссылку, лучше стал понимать что нужно. Теперь хоть могу обяснить нормально.

У меня дурдом с этими числами. smile

Есть файл, в которов пишется в 16-ритчной системе, но значения там в 8-ричной системе, (максимум 7А).


Цитата
76
77
78
79
7A
0  1
1  1
2  1
3  1
4  1


Нужно его открыть, перевести в десятеричную систему, пользователь (или програма) меняет пару цыфру, а потом нужно в обратном порядке записать обратно.

Если есть советы, внимательно выслушаю.
PM MAIL WWW ICQ   Вверх
LuckLess
Дата 3.4.2005, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 15.9.2004

Репутация: 1
Всего: 1



Цитата(steven13 @ 3.4.2005, 07:30)
16-ритчной системе, но значения там в 8-ричной системе

чтото тупняк напал.
в эту строчку пытался вЪехать минут 10.
Можно поподроднее тут плз?

Добавлено @ 10:15
Цитата(steven13 @ 3.4.2005, 07:30)
(максимум 7А).

как это 7A -> это значение в 8-ой системе , когда оно 16-ое.
ух.
щас рассплавлюсь..

PM MAIL   Вверх
steven13
Дата 3.4.2005, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.3.2005
Где: http://city.vin.c om.ua

Репутация: нет
Всего: нет



Вот число в 10-ричной - 200
Вот это число в 8-ричной - 310
Вот это число в 16 -ричной - C8

А ВОТ ТАК ОНО ЗАПИСАНО: 4E 01

Обратно переводится: (4Е= 78) + (01=122 ) = 200
PM MAIL WWW ICQ   Вверх
LuckLess
Дата 3.4.2005, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 15.9.2004

Репутация: 1
Всего: 1



01=122 -- это как?
PM MAIL   Вверх
De Gray
Дата 3.4.2005, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 18.2.2005
Где: Регистрация?

Репутация: нет
Всего: 4



0100- либо 64 либо 256, но уж никак не 122, в крайнем случае 121
--------------------
Извяните, шо мы к вас за поможите обращаимси.
PM MAIL   Вверх
steven13
Дата 3.4.2005, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.3.2005
Где: http://city.vin.c om.ua

Репутация: нет
Всего: нет



Цитата(LuckLess @ 3.4.2005, 17:17)
01=122 -- это как?

Одна 16 ричная ячейка может принимать значения:

от 00 до 7A

если значение больше 122 (7A), на пример 123 то программа не пишет его как 7B, а начинает использовать уже вторую ячейку!!!

И пишет его 00 01.
PM MAIL WWW ICQ   Вверх
steven13
Дата 3.4.2005, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 31.3.2005
Где: http://city.vin.c om.ua

Репутация: нет
Всего: нет



Цитата(De @ 3.4.2005, 17:19)
0100- либо 64 либо 256, но уж никак не 122, в крайнем случае 121

Возможно так у нормальных людей!!!!

Но здесь програма пишет в одну ячейку не больше 7А (включительно) то-есть 122.



Моё предположение, что вводить данные нужно в десятеричной системе оказалось ошибочно. smile
Вводить их нужно в восьмеричной системе.
То-есть использовать 8 и 9 НЕЛЬЗЯ!!!
Это упрощает задачу.


Ципочка получаэтся такая:

1. Вовожу значение в восмеричной системе.

2. Программа их пишет в файл в "хитророй" Неполной 16-ричной системе.

1. Нужно считать это значение.
2. Декодировать в 8-ричную систему.

3. Работать с ним в 8-ричной системе.
4. Сохранить назад в том ненормальном формате. smile



Вернулись к тому с чего начинали, нужно заставить Си правильно заботать с цифрами в восьмеричной системе.

PM MAIL WWW ICQ   Вверх
pablo
Дата 4.4.2005, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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]


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.