Другие языки программирования и технологии

Помогите с системой счисления!

Мне нужно сложить 51 + 71
По правилу 5 в восьмеричной системе это 101, 1 это 001 получаем 101001
По правилу 7 в восьмеричной системе это 111, 1 это 001 получаем 111001
Они положительные, тогда приписываю 00, получается 00, 101001 и 00, 111001
Дальше складываю и получается вот такое число: 00,1100010
А теперь для проверки перевожу в десетяричную систему и полочается 98
НО ВЕДЬ 51 + 71=122
ЧТО НЕ ТАК ДЕЛАЮ?
Ты определись уже, в какой системе исходные данные !
51(10)+71(10)=122(10)
51(8)+71(8)=142(8)→98(10)
Так что решила правильно, но абсолютно не понимаешь того, что решала.

Остальным умникам : да так можно (и на много легче) переводить из 8-ми ричной и 16-ти ричной с/с в 2-ю. Для 8-и ричной цифры раскладываются в триады (по 3 цифры 1→001, 5 → 101 и т. п.) , для 16-ти ричной — тетрадами (по 4-ре цифры 1→ 0001, 5 →0101 и т. п).
VS
Viktor Smirnov
37 556
Лучший ответ
ох ни**я себе алгоритм, это где так научили? о_О
если у тебя 51 и 71 оба в 8меричной, то:

1. Переводишь их в 2ичную, т. е. 51 делишь на 2 столбиком, пока делится, и записываешь результаты и остатки от деления в обратном порядке, также и с 71(САМО ЧИСЛО, А НЕ ЦИФРЫ ЧИСЛА ПЕРЕВОДИШЬ lol).
2. Никакой херни типа двух нулей дописывать не нужно, только если они с разным количеством разрядов, то можешь дописать незначащий нулик.
3. Складываешь.
4. ??
5. PROFIT.
Ruslan Pervushkin
Ruslan Pervushkin
3 999
Ты чего то путаешь. 51 в восьмеричной будет 63
а 71 - 107
итого 172 в восьмеричной
Иван Шмелёв
Иван Шмелёв
1 869
Нужно не каждый разряд в отдельности переводить, а все число целиком. т. е. 51 = 32 + 16 + 2 + 1 = 2^5 + 2^4 + 2^1 + 2^0 = 110011, 71 = 1000111, 110011+1000111= 1111010=122
Юрий Васильев
Юрий Васильев
1 392
Всё правильно сделала, кроме последней операции. Ты ведь сама оговорила в начале, что читаешь числа 51 и 71, как восьмеричные, а в конце запросто складываешь их так, как будто они десятичные. Запусти калькулятор Windows, переведи в инженерный вид, нажми "F7" (режим восьмеричных чисел) , набери 51 + 71, затем Enter. Затем переведи результат в десятичный вид (нажми "F6"), - и получишь своё "98".
Или сначала переведи 51 и 71 в десятичную систему, получишь 5 * 8 + 1 = 41, 7 * 8 + 1 = 57. А 41 + 57 = 98.
С самого начала неправильно.
51 в двоичной - 110011
71 в двоичной - 1000111
(переводится делением на 2 и записью остатка от деления (0 или 1))

сложение так:
0+0 = 0, 1+0 = 0+1 = 1, 1+1 = 10
Получается 1111010 = 122.