Выполните действия в двоичной системе счисления: б)1100+1×2^3+1×2^1, в)1001,1×(1×2^4+1×2^3+1×2^2+1×2^1), г)1111,101+1×2^3+1×2, д)1×2^2+1×2^1+1×2^0+10,001, е)1×2^0+11000111, ж)1×2^7+1×2^3-1,1, з)11010111-(1×2^5+1×2^3+1×2^1). очень
begin var a := ReadInteger('Возраст Антона:'); var b := ReadInteger('Возраст Бориса:'); var v := ReadInteger('Возраст Виктора:'); if (a > b) and (a > v) then begin Println('Антон старше всех');exit; end; if (b > a) and (b > v) then begin Println('Борис старше всех');exit; end; if (v > a) and (v > b) then begin Println('Виктор старше всех');exit; end; if (a > v) and (a = b) then begin Println('Антон и Борис старше Виктора.');exit; end; if (a > b) and (a = v) then begin Println('Антон и Виктор старше Бориса.');exit; end; if (v > a) and (v = b) then begin Println('Виктор и Борис старше Антона.');exit; end; if (a = b) and (b = v) then begin Println('Виктор, Борис и Антон одного возраста.');exit; end; end.
Первая задача Из десятичной в двоичную можно переводить двумя 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)
//Версия 3.3, сборка 1634 (14.02.2018)
begin
var a := ReadInteger('Возраст Антона:');
var b := ReadInteger('Возраст Бориса:');
var v := ReadInteger('Возраст Виктора:');
if (a > b) and (a > v) then begin Println('Антон старше всех');exit; end;
if (b > a) and (b > v) then begin Println('Борис старше всех');exit; end;
if (v > a) and (v > b) then begin Println('Виктор старше всех');exit; end;
if (a > v) and (a = b) then begin Println('Антон и Борис старше Виктора.');exit; end;
if (a > b) and (a = v) then begin Println('Антон и Виктор старше Бориса.');exit; end;
if (v > a) and (v = b) then begin Println('Виктор и Борис старше Антона.');exit; end;
if (a = b) and (b = v) then begin Println('Виктор, Борис и Антон одного возраста.');exit; end;
end.