Преобразование двоичных чисел в десятичные Допустим, дано двоичное число 1100012. Для перевода в десятичное запишите его как сумму по разрядам следующим образом: Может потребоваться перевести десятичное число в двоичное. Один из это деление на два и формирование двоичного числа из остатков. Например, нужно получить из числа 77 его двоичную запись: 77 / 2 = 38 (1 остаток) 38 / 2 = 19 (0 остаток) 19 / 2 = 9 (1 остаток) 9 / 2 = 4 (1 остаток) 4 / 2 = 2 (0 остаток) 2 / 2 = 1 (0 остаток) 1 / 2 = 0 (1 остаток) Собираем остатки вместе, начиная с конца: 1001101. Это и есть число 77 в двоичном представлении. Проверим:
1) var a: array [1..40] of integer; i, s1, s2: integer; begin for i := 1 to 40 do begin a[i] := random(20); writeln('a[', i, '] => ', a[i]); if (a[i] mod 2 = 1) then begin s1 := s1 + a[i]; inc(s2); end; end; writeln(s1 / s2); end.
2) var a: array [1..40] of integer; i, q: integer; begin for i := 1 to 40 do begin a[i] := random(20); writeln('a[', i, '] => ', a[i]); if (a[i] <= 10) then q := q + a[i]; end; writeln(q); end.
3) var a: array [1..40] of integer; i, w: integer; begin for i := 1 to 40 do begin a[i] := random(20); writeln('a[', i, '] => ', a[i]); if (a[i] mod 3 = 0) then w := w + a[i]; end; writeln(w); end.
Допустим, дано двоичное число 1100012.
Для перевода в десятичное запишите его как сумму по разрядам следующим образом:
Может потребоваться перевести десятичное число в двоичное. Один из это деление на два и формирование двоичного числа из остатков. Например, нужно получить из числа 77 его двоичную запись: 77 / 2 = 38 (1 остаток)
38 / 2 = 19 (0 остаток)
19 / 2 = 9 (1 остаток)
9 / 2 = 4 (1 остаток)
4 / 2 = 2 (0 остаток)
2 / 2 = 1 (0 остаток)
1 / 2 = 0 (1 остаток) Собираем остатки вместе, начиная с конца: 1001101. Это и есть число 77 в двоичном представлении. Проверим:
var a: array [1..40] of integer;
i, s1, s2: integer;
begin
for i := 1 to 40 do
begin
a[i] := random(20);
writeln('a[', i, '] => ', a[i]);
if (a[i] mod 2 = 1) then
begin
s1 := s1 + a[i];
inc(s2);
end;
end;
writeln(s1 / s2);
end.
2)
var a: array [1..40] of integer;
i, q: integer;
begin
for i := 1 to 40 do
begin
a[i] := random(20);
writeln('a[', i, '] => ', a[i]);
if (a[i] <= 10) then q := q + a[i];
end;
writeln(q);
end.
3)
var a: array [1..40] of integer;
i, w: integer;
begin
for i := 1 to 40 do
begin
a[i] := random(20);
writeln('a[', i, '] => ', a[i]);
if (a[i] mod 3 = 0) then w := w + a[i];
end;
writeln(w);
end.