Естественные науки

Системы счисления. Перевод чисел из одной системы счисления в другую.

Записать числа a и b в системе счисления с основанием 2, в этой системе найти значение выражения (a + b)+ a * b - (a - b) , записать результат в системе счисления с основанием 16.. a = 4522 (8) , b = 110 (3) , пожалуйста с подробностями
a=4522 (8)
переведём в (2)
это просто для (8) - каждая цифра (8) переводится в 3 цифры (2):
100 101 010 010 (2) - вот такое у нас получилось a.

далее b = 110 (3) - это чуть посложнее перевести в (2), но само число довольно простое, 110(3) это 9+3+0=12, для понимания, в привычной десятичной системе, а 12(10) = 1100(2).

получается, у нас a и b вот такие:
a=100101010010
b=1100

дополним b нулями в начале, чтобы было нагляднее и проще складывать и вычитать:
a=100101010010
b=000000001100

нам надо найти и сумму S=(a+b), и произведение M=(a*b), и разность D=(a-b) для начала, после чего найти результат R = S + M - D.

Складываем в столбик:
100101010010
000000001100
--------------------
100101011110 (получили сумму S)

Вычитаем в столбик:
100101010010
000000001100
--------------------
100101000110 (получили разность D)

Теперь умножаем. В двоичной системе что хорошо - умножение сводится сдвигам и сложениям.
b у нас из двух единиц всего состоит, в позициях 2 и 3, если считать справа, начиная с нулевой позиции, вот и будем умножать a путём сдвига влево на 2 и на 3 разряда и последующим сложением:
000 100101010010 (это просто для справки исходное a, складывать его мы ни с чем не будем)

0100101010010 00 (это a, сдвинутое на 2 разряда влево)
100101010010 000 (а это a, сдвинутое на 3 разряда влево)
-------------------------------------
1101111110110000 (а это - M - результат умножения a*b)

Найдём теперь результат:
R = S + M - D.

R = 100101011110 + 1101111110110000 - 100101000110

Это, конечно, тоже проще всего в столбик:

0000100101011110
+
1101111110110000
----------------
1110100100001110
-
0000100101000110
----------------
1101111111001000

Результат получился в двоичной системе, так как мы в ней считали.
А нас просят записать в шестнадцатеричной. Ну, это просто тоже, ведь каждая цифра шестнадцатеричной системы состоит из четырёх цифр двоичной системы, группировать нужно справа налево:

1101 1111 1100 1000

D F C 8

это и есть ответ... но я мог и накосячить где-то в промежутке, проверяйте сами, пожалуйста, простите, если что не так
Владимир Кремень
Владимир Кремень
1 319
Лучший ответ
Леонид Филиппов Кстати, если преобразовать предварительно -
(a + b)+ a * b - (a - b) = 2b + а * b = b * (а + 2),
то вроде число операций уменьшается на единицу.
Столбиком умеешь складывать? Перемножать? Так вот в любой системе это делается одинакого. Перевод в hex вообще просто. С подробностями слишком много хочешь. Лень просто
Денис Макаров
Денис Макаров
8 904
Леонид Рыхлик То же самое: лень. И тоска зелёная. Ну, доколе своих мозгов не будет? А может, и ему тоже лень? И нам всем вместе лень?

Похожие вопросы