1) 56(10) ⇒ х(2) Для перевода целого числа из десятичной системы в двоичную выполняем его целочисленное деление на два с сохранением остатка. Если частное больше единицы, делим его на два, снова сохраняем остаток и т.д. Как только частное станет равным 1 или 0, записываем его, а затем приписываем к нему слева остатки в порядке, обратном их получению. 56 / 2 = 28 (остаток 0) 28 / 2 - 14 (остаток 0) 14 / 2 = 7 (остаток 0) 7 / 2 = 3 (остаток 1) 3 / 2 = 1 (остаток 1) Записываем результат. 56(10) = 111000(2)
Переводы в десятичную систему счисления выполняются путем записи числа в расширенном виде по основанию системы счисления, в которой представлено число. А далее операции выполняются в десятичной системе.
Переводы чисел между системами счисления по основаниям, кратным степеням двойки (2,4,8,16) выполняется через двоичную систему счисления, как через промежуточную. Например, при переходе от восьмеричной системы к шестнадцатиричной, мы учитываем, что , каждую восьмеричную цифру заменяем тремя двоичными (триадой) и получаем двоичное число. А затем, зная что , мы группируем двоичные разряды справа налево по четыре, получая тетрады. И, наконец, каждую тетраду мы заменяем соответствующей шестнадцатиричной цифрой. Описывать этот процесс долго, а перевод делается быстро. 3) 77(8) = 111 111(2) = 11 1111(2) = 3F(16) 4) 57(8) = 101 111(2) = 101111(2) 5) 9A(16) = 1001 1010(2) = 10011010(2) 7) 10011(2) = 010 011(2) = 23(8) 8) 101011(2) = 0010 1011(2) = 2B(16)
Замечание. Так как количество вводимых чисел заранее не известно, то откроем бесконечный цикл со всегда верным условием True, но как только будет введено число 0, остановим цикл командой break.
Программа:
program z; var k,s,x:integer; begin k:=0; {начальное значение количества двузначных чисел} s:=0; {начальное значение суммы двузначных чисел} while True do {открываем бесконечный цикл} begin readln(x); {вводим число х} if x=0 then break; {если введенное число равно 0, то остановить цикл} if (x>9)and(x<100) then {если число двузначное, т.е. от 10 до 99} begin k:=k+1; {количество увеличиваем на 1} s:=s+x; {увеличиваем предыдущее значение суммы на число х} end; end; if k=0 then writeln('NO') {если двузначных чисел не было, то вывод NO} else writeln(s/k); {иначе вывод ср.арифметического} end.
Для перевода целого числа из десятичной системы в двоичную выполняем его целочисленное деление на два с сохранением остатка. Если частное больше единицы, делим его на два, снова сохраняем остаток и т.д. Как только частное станет равным 1 или 0, записываем его, а затем приписываем к нему слева остатки в порядке, обратном их получению.
56 / 2 = 28 (остаток 0)
28 / 2 - 14 (остаток 0)
14 / 2 = 7 (остаток 0)
7 / 2 = 3 (остаток 1)
3 / 2 = 1 (остаток 1)
Записываем результат. 56(10) = 111000(2)
Переводы в десятичную систему счисления выполняются путем записи числа в расширенном виде по основанию системы счисления, в которой представлено число. А далее операции выполняются в десятичной системе.
Переводы чисел между системами счисления по основаниям, кратным степеням двойки (2,4,8,16) выполняется через двоичную систему счисления, как через промежуточную. Например, при переходе от восьмеричной системы к шестнадцатиричной, мы учитываем, что
3) 77(8) = 111 111(2) = 11 1111(2) = 3F(16)
4) 57(8) = 101 111(2) = 101111(2)
5) 9A(16) = 1001 1010(2) = 10011010(2)
7) 10011(2) = 010 011(2) = 23(8)
8) 101011(2) = 0010 1011(2) = 2B(16)