Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2013, 19:24   #21
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Как Вы думаете, зачем принято указывать источник информации?
Ага.. Сначала накопал инфу, отписался тут.. а потом увидел что это было написано ученицей 11 класса.

Хм.. Я кажется что-то понял
То есть, чтобы намного упростить работу машине, мы будем хранить промежуточное вычисление в двоичном виде??

Но как же нам перевести из с.с. с основанием X1, сначала в с.с. с основанием 2, а затем в с.с. с основанием X2 ?

(Ссылка или словесное описание были бы очень кстати, т.к. хочу сам написать сей алгоритм )

Цитата:
опытайтесь написать программу, которая делит одно число в виде строки цифр на другое такое же число без их преобразования во внутреннее представление.
Тоесть даны 2 строки символов, нужно найти частное и остаток от деление строки_1 на строку_2, без представления этих строк в их числовом значении??
Poma][a вне форума Ответить с цитированием
Старый 15.03.2013, 19:55   #22
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Poma}{a Посмотреть сообщение
То есть, чтобы намного упростить работу машине, мы будем хранить промежуточное вычисление в двоичном виде??
Ну, машине, конечно, тоже, но самое главное - себе любимому как программисту.
Цитата:
Но как же нам перевести из с.с. с основанием X1, сначала в с.с. с основанием 2, а затем в с.с. с основанием X2 ?
Давайте сначала определимся, во внутреннее двоичное или в текстовое двоичное.
Если во внутреннее, то это как раз та операция, которую Вы до сих пор считали переводом в 10-чную систему счисления.
Ужа цитируемый мною ранее фрагмент кода
1*16^5 + 2*16^4 + 3*16^3 + 10*16^2 + 11*16 + 12
переводит как раз из 16-чной в 2-ную. (при условии, что он выполняется на компьютере с 2-чной логикой, а таковы все современные компьютеры.)
Цитата:
(Ссылка или словесное описание были бы очень кстати, т.к. хочу сам написать сей алгоритм )
Сначала переводим строку с записью числа в одной СС в число (во внутреннем представлении - двоичное),
а затем - число в строку уже в новой СС.
Цитата:
Тоесть даны 2 строки символов, нужно найти частное и остаток от деление строки_1 на строку_2, без представления этих строк в их числовом значении??
А это второй вариант.
Ну и результат, разумеется, тоже в виде строки.
Выполняется известным со школы методом - в столбик.

Последний раз редактировалось s-andriano; 15.03.2013 в 19:58.
s-andriano вне форума Ответить с цитированием
Старый 15.03.2013, 22:39   #23
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Сообщение от Poma}{a
Интересно, это форум так мне мстит?
Цитата:
Давайте сначала определимся, во внутреннее двоичное или в текстовое двоичное.
Если во внутреннее, то это как раз та операция, которую Вы до сих пор считали переводом в 10-чную систему счисления.
Ужа цитируемый мною ранее фрагмент кода
1*16^5 + 2*16^4 + 3*16^3 + 10*16^2 + 11*16 + 12
переводит как раз из 16-чной в 2-ную. (при условии, что он выполняется на компьютере с 2-чной логикой, а таковы все современные компьютеры.)
Давайте по порядку.
Форумула (см.выше) переводит из 16 с.с. в 10 с.с. ДЛЯ меня, сидящего с бумажкой и ручкой, НО она же является формулой для перевода из 16 в 2 с.с. для компьютера, работающего с двоичными числами?

Цитата:
А это второй вариант.
Ну и результат, разумеется, тоже в виде строки.
Выполняется известным со школы методом - в столбик.
То бишь длинная арифметика?
Poma][a вне форума Ответить с цитированием
Старый 15.03.2013, 23:07   #24
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Давайте по порядку.
Форумула (см.выше) переводит из 16 с.с. в 10 с.с. ДЛЯ меня, сидящего с бумажкой и ручкой, НО она же является формулой для перевода из 16 в 2 с.с. для компьютера, работающего с двоичными числами?
Нет, эта запись переводит текст в 16-чной СС в число.
А тот факт, что для человека наиболее естественной формой представления числа является десятичное текстовое представление, а для компьютера - внутреннее двоичное, - это личное дело каждого.
Цитата:
То бишь длинная арифметика?
Если реализация длинной арифметики осуществляется именно через символьные строки, то - да.

Точнее, любая операция деления, не поддерживаемая аппаратно, программно реализуется именно алгоритмом деления в столбик.

Например, TurboPascal работает в 16-разрядном режиме, поэтому 32-разрядная операция деления аппаратно не поддерживается, и, как следствие, деление longint на longint (а с учетом приведения типов это любое деление с участием хотя бы одного longint) была реализована именно в столбик.
s-andriano вне форума Ответить с цитированием
Старый 16.03.2013, 07:24   #25
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Тогда я снова ничего не понял..
Цитата:
Нет, эта запись переводит текст в 16-чной СС в число.
Я предлагал в 10 с.с. ДЛЯ ПОЛЬЗОВАТЕЛЯ.
Цитата:
В принципе ход мысли верный, но гораздо удобнее в качестве промежуточного представление использовать не 10-чную систему, а внутреннее представление (которое, как известно, в двоичной системе).
А Вы, как я понял, предлагали использовать 2 с.с. тоже для пользователя!

Так ?
Poma][a вне форума Ответить с цитированием
Старый 16.03.2013, 10:59   #26
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Теперь я Вас не понимаю.
Сформулируйте, пожалуйста, вопрос.
s-andriano вне форума Ответить с цитированием
Старый 16.03.2013, 13:10   #27
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Боже мой, а поискать-то не хочется? Тык.
Теперь я Вас не понимаю.
Цитата:
Сформулируйте, пожалуйста, вопрос.
Вы - гений! Снимаю шляпую
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 16.03.2013 в 13:25.
Smitt&Wesson вне форума Ответить с цитированием
Старый 16.03.2013, 13:30   #28
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
оже мой, а поискать-то не хочется? Тык.
За книжку спасибо, но к чему это?

To s-andriano, давайте вернемся к алгоритму, предложенному мною ранее.

Там было предложено использовать 10 с.с., как промежуточное вычисление, НО Вы сказали, что использовать 2 с.с. будет гораздо лучше!
Теперь же после прочтения Ваших последующих постов, возник вопрос : Вы предлагали использовать двоичную с.с. для пользователя? Тоесть чтобы мы сначала перевели из 13 с.с. в двоичное представление этого числа (для пользователя, тоесть хранить мы это будем не в N : Integer, а например в S : string), а уже потом, перевели из 2 с.с. в 7 с.с.
Poma][a вне форума Ответить с цитированием
Старый 16.03.2013, 14:44   #29
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Там было предложено использовать 10 с.с., как промежуточное вычисление, НО Вы сказали, что использовать 2 с.с. будет гораздо лучше!
Нет, я говорил совсем не это.
Я говорил, что если эту работу будет выполнять компьютер, то он при это сам переведет в двоичную систему и Вас не спросит.
Т.е. вопросы лучше или хуже не стоят в принципе, т.к. вариант единственный и других быть не может.

Все современные компьютеры работают только в двоичной системе (возможно, кроме нескольких экспериментальных).
Цитата:
Теперь же после прочтения Ваших последующих постов, возник вопрос : Вы предлагали использовать двоичную с.с. для пользователя? Тоесть чтобы мы сначала перевели из 13 с.с. в двоичное представление этого числа (для пользователя, тоесть хранить мы это будем не в N : Integer, а например в S : string), а уже потом, перевели из 2 с.с. в 7 с.с.
Нет, я такого не предлагал. Но, в любом случае, двоичном представлении проще всего осуществляется операция деления в столбик. Так что такой вариант тоже не лишен смысла.

Я только не понимаю, что Вы подразумеваете под словами "для пользователя". Это значит "вручную на бумажке"? Если "да", то какие на бумажки могут быть integer?
s-andriano вне форума Ответить с цитированием
Старый 16.03.2013, 22:37   #30
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Я только не понимаю, что Вы подразумеваете под словами "для пользователя". Это значит "вручную на бумажке"? Если "да", то какие на бумажки могут быть integer?
Да, для пользователя = на бумажке
Integer в данном случае означает целое число в 10 с.с.


Но теперь я перестал понимать Ваше замечание!
Мой алгоритм предполагал такой перевод N1 в X1 c.c. = N2 в 10 c.c. = N3 в X2 с.с.

Вы забраковали этот вариант!
Теперь же оказывается мой косяк был в том что я писал пост с точки зрения бумажки и ручки, а Вы с точки зрения представления чисел в памяти машины.. Вообщем, надеюсь Вы объясните что же Вы имели ввиду..
Poma][a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Програмка на языке Pascal Tatyana Kur Помощь студентам 1 07.11.2011 22:36
Си програмка Nebojitel Общие вопросы C/C++ 8 15.07.2011 20:54
Задачи на Pascal ABC (обьясните хотябы суть) Joker_SoloD Помощь студентам 1 08.12.2010 15:15
Програмка Spiderik Паскаль, Turbo Pascal, PascalABC.NET 1 17.04.2010 09:12