Первая задача Из десятичной в двоичную можно переводить двумя 1. Сразу переводить в двоичную делением. 2. Переводить в 16-ичную, после уже в двоичную.
Первый В скобках высчитывается остаток от деления. 1) 1023 div 2 = 511 (1023 – (511*2) = 1) 2) 511 div 2 = 255 (511 – (255*2) = 1) 3) 255 div 2 = 127 (255 – (127*2) = 1) 4) 127 div 2 = 63 (127 – (63*2) = 1) 5) 63 div 2 = 31 (63 – (31*2) = 1) 6) 31 div 2 = 15 (31 – (15*2) = 1) 7) 15 div 2 = 7 (15 – (7*2) = 1) 8) 7 div 2 = 3 (7 – (2*3) = 1) 9) 3 div 2 = 1 (3 – (1*2) = 1) Итого 1023 (10) = 1111111111 (2)
Второй сначала переводим в 16-ичную 1) 1023 div 16 = 63 (1023 – (63*16) = 15) 2) 63 div 16 = 3 (63 – (3*16) = 15) 3 (16) = 0011 (2) 15 = F (16) = 1111 (2) 1023 (10) = 3FF (16) = 001111111111 (2) Отбрасываем незначащие нули в начале числа и получаем 1111111111 (2)
Вторая задача Во втором задании перевод так же можно совершить 2мя но я воспользуюсь вторым, так как он короче и быстрее. 1) 501 div 16 = 31 (501 – (31*16) = 5) 2) 31 div 16 = 1 (31 – (1*16) = 15) 1 (16) = 0001 (2) 5 (16) = 0101 (2) 15 = F (16) = 1111 (2) 501 (10) = 1F5 (16) = 000101011111 (2). Отбрасываем незначащие нули в начале числа, получаем 101011111 (2)
const mas:array[1..5] of integer = (1,2,3,4,5);