186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|||||||
1 | |||||||
Перевод в 9-чную систему счисления02.01.2012, 13:23. Показов 22420. Ответов 122
Метки нет (Все метки)
есть задача, что бы решить ее до конца мне надо сделать перевод из 10-тичной(можно любой другой) в девятиричную систему счисления
я бы это сделал сам, если бы не странность системы. В задание звучит так: Рассмотрим девятеричную позиционную систему счисления с цифрами { B, A, 0, 1, 2, 3, 4, 5, 6 }, где цифра A имеет значение -1, а цифра B – значение -2. подскажите как сделать этот перевод(функцию или алгоритм) Добавлено через 49 минут up есть идеи?
0
|
02.01.2012, 13:23 | |
Ответы с готовыми решениями:
122
"Перевести натуральное число из 8-ричной в 10-чную систему счисления" Рекурсия: перевод целого числа из десятичной системы счисления в 9 систему счисления Перевод числа из 8-ичной системы счисления в 16-ричную систему счисления и обратно. Перевод натурального числа из десятичной системы счисления в систему счисления по основанию |
02.01.2012, 14:09 | 2 |
Интересная задача. Математически ничем от обычной 9-ричной системы не отличается, но технически мозг ломается уже на уровне подсознания, чтобы это воспринять. Математически алгоритм написать пока затрудняюсь, но на пальцах получается так. Пишем в ряд несколько разрядов и все их зануляем. Далее увеличиваем значения на единичку с правой стороны циклическим образом. При переходе через границу увеличиваем на единичку левый разряд (как на счётчике от магнитофона, если ещё застал таковое):
0000 0001 0002 0003 0004 0005 0006 001B = 1 * 9 + B = 7 001A = 1 * 9 + A = 8 0010 = 1 * 9 + 0 = 9 ... 0016 = 1 * 9 + 6 = 15 002B = 2 * 9 + B = 16 002A = 2 * 9 + A = 17 ... Добавлено через 1 минуту Т.е. в итоге получается всё то же самое, что и для "обычной" системы счисления, но вот таким вот извращённым способом
1
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
||||||
02.01.2012, 14:28 [ТС] | 3 | |||||
большое спасибо) сам бы не догадался посмотреть так
я говорил что решил, но думаю у меня неправильный код помогите мне теоритечески или кусочками кода вся задача такая:Задание 4. Рассмотрим девятеричную позиционную систему счисления с цифрами { B, A, 0, 1, 2, 3, 4, 5, 6 }, где цифра A имеет значение -1, а цифра B – значение -2. Выполните следующие операции и представьте результат в этой же самой системе счисления: 24+5A B5+61 52*A6 312+41B A 1A*B2B а вот код который пока есть у меня
0
|
02.01.2012, 14:56 | 4 |
Как ты делаешь сложение столбиком в десятичной системе? Грубо говоря, сначала складываешь два правых разряда. Если получается двузначное число, то старший разряд (единицу) переносишь в следующий разряд. Тут, вроде бы как, будет то же самое. Берёшь разряды в строковой форме, переводишь их в число, делаешь сложение в виде чисел, результат переводишь в строковую форму. Если строка будет состоять из одного символа, то сложение разрядов будет без переноса, если из двух символов - то с переносом. Причём старший символ вроде бы как только единицей может быть
1
|
Заблокирован
|
|
02.01.2012, 19:44 | 5 |
много писал, потом правил, потом переписывал в итоге скажу коротко. сс = 9 значит положительных чисел должно быть ровно 9. Дальше - знака в сс нету. Отрицательные числа представлены символами А и В в левом разряде. т.е. числа -6 нет, это число будет таким: А3, а число -3 = А6. Это важно. Вот почему: число An и цифра nA корректны в обоих случаях (я в этом убедился на примере A1A*B2B ). Что может следовать из этого? то что перевод из\в другие сс крайне затруднен по причине высокой вероятности просто перепутать связки n и A, B. Как, например, трактовать такое число AB5BA? А вот из этого уже следует что переводить числа в другую сс не имеет смысла, это очень затратно. Вычисления должны быть построены по правилам машинной арифметики в прямых и обратных\дополнительных кодах. Моё имхо.
1
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|
03.01.2012, 11:55 [ТС] | 7 |
насколько я понял мне надо писать сложение и умножение столбиком?
или это все равно работать так как надо не будет
0
|
Заблокирован
|
|
03.01.2012, 12:36 | 8 |
дополни алфавит до 1A справа и A1 слева и у тебя появится 17 "одноразрядных" элементов + нуль. Для них сделай таблицу сложения и умножения (просто в тетради для наглядности). А поскольку все "одноразрядные" комбинации у тебя уже есть, то вроде как несложно становится разбить число на разряды, остальное дело техники. Интуиция мне все таки подсказывает что в отрицательных числах n привязано к А или В справа (приоритет выше) а после уже слева, но на интуицию полагаться... Поправлюсь - положительных должно быть 8 + нуль.
имхо, только по заранее составленной таблице. Добавлено через 16 минут нет. ерунду написал. 1А и А1 это уже двуразрядные числа, также как и 2А, 5А и т.д.
0
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|
03.01.2012, 12:44 [ТС] | 9 |
глупыя я)
не понимаю что от меня хотите можно примеры кода?
0
|
03.01.2012, 16:57 | 10 |
Я не знаю, ты уточни у своего преподавателя. Но если делать НЕ столбиком, то смысл задания вроде бы как теряется. Для подстраховки ты у преподавателя выясни всё-таки. Однако моё мнение, что человек, дающий такие задания, совсем не является идиотом, а потому логичным было бы ожидать именно такую постановку задачи
От тебя пока никто ничего не хочет. Просто пытаемся вникнуть в смысл задания и высказываем мысли вслух. Ну вот я и не понимаю, чему по заранее составленной таблице равно B+B. Ни о каких дополнительных кодах речь идти не может, поскольку они существуют лишь при хранении данных в машине. На бумаге отрицательные числа из разных систем счисления пишутся с обычным знаком минус. Но как оно будет в нашей шаманской системе - хз: 1B + B = 5. Т.е. если к двузначному числу добавить однозначное, то может в результате получиться однозначное. Т.е. при складывании столбиком в соседний (левый) разряд переносится не +1, а -1. Как это выразить обобщённым способом - не понимаю.
0
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|
03.01.2012, 22:05 [ТС] | 11 |
это задание вузовской олимпиады
я сначала думал что оно одно из простых, а оказалось с подвохом у меня пока больше нет идей, как его решать
0
|
62 / 35 / 3
Регистрация: 05.10.2011
Сообщений: 137
|
|
03.01.2012, 22:35 | 12 |
честно говоря, листая Wiki, я не натолкнулся ни на одну систему счисления, которая бы начиналась с отрицательных чисел; позиционная система счисления рассматривается как система последовательного перебора чисел, начинающаяся с нуля, а не с -2.
Если принимать за B=0, A=1, 0=2, и т.д., то эта задача решается вроде просто...
0
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|
03.01.2012, 22:37 [ТС] | 13 |
да но в условие сказана по другому
0
|
62 / 35 / 3
Регистрация: 05.10.2011
Сообщений: 137
|
|
03.01.2012, 23:06 | 14 |
0+1=1 (dec)
B+A=A (nov) B - основание данной сист. счисления., т.е. это эквивалентно если бы взять B=0, A=1, 0=2, и т.д., и сложить, а потом представить наоборот. ...но тогда B+B=0; беда... ...а что тебя не устраивает в твоем алгоритме?
0
|
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
|
|
03.01.2012, 23:14 | 16 |
B + B = B
Я так понял, местный ноль равен десятичной двойке. Цифра сама по себе не может быть отрицательной ну никак
0
|
278 / 173 / 21
Регистрация: 10.07.2011
Сообщений: 441
|
|
04.01.2012, 00:01 | 18 |
A+A = B
A+B = -6 B+B = -5 1A+1A = 2B 1A+1B = 2(-6) = 16 1B+1B = 2(-5) = 15 1A+10 = 2A 1A+11 = 20 1A+12 = 21 1B+11 = 2(-1) = 2A т.е. если в результате сложения получается цифра меньшая чем B (т.e. -2) то от следующего десятка отнимает 1. Т.е. как я вижу в толбик считать не так уж и сложно
0
|
Заблокирован
|
|
04.01.2012, 09:31 | 19 |
в этой сс нету знаков, отрицательные представлены символами в старшем разряде
A + B = A6 B + B = A5 функцию сложения написать не сложно, хотя она и не простая. Сложно реализовать умножение, возведение в степень. Мы привыкли что 10 и -10 отличаются только знаком, а в этой сс всё иначе (как в эвм)-> это ключ к решению Об отрицательности или положительности числа сигнализирует старший разряд, поэтому я бы не говорил что задача чисто математическая. По любому вычисления должны быть в исходной сс.
0
|
278 / 173 / 21
Регистрация: 10.07.2011
Сообщений: 441
|
|
04.01.2012, 10:22 | 20 |
Я понял. Подумал, что если представить именно в таком виде что если результат менше В (-2) то просто отнимать 1 от следующего разряда при сложении.
Возможно вы правы. Задача интересная буду тоже принимать участие. Все же теоретически меня не оставляет мысль попробовать сделать перевод в десятичную. Нет ничего сложно перевести число из данной СС в десятичную используя суммы произведений степеней основания системы счисления на соответствующие цифры. Например : B2B = -2*9^2+2*9^1+(-2)*9^0 = -81+18-2 = - 65 а вот обратно перевести.. вот это уже интереснее.
0
|
04.01.2012, 10:22 | |
04.01.2012, 10:22 | |
Помогаю со студенческими работами здесь
20
Перевод строки из 2-ной системы счисления в 8-ную систему счисления Перевод из любой системы счисления в любую другую систему счисления (2-36) Перевод числа из восьмеричной системы счисления в шестнадцатеричную систему счисления Перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки и обратно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |