Числа в памяти компьютера записываются в двоичном виде. Иными словами, число представлено двумя цифрами - 0 и 1.
Число 21
21 / 2 = 10, остаток 1
10 / 2 = 5, остаток 0
5 / 2 = 2, остаток 1
2 / 2 = 1, остаток 0
1 / 2 = 1, остаток 1
Запишем воедино остатки с конца и получим двоичное представление числа:
21₁₀ = 10101₂
Число 32
Здесь можно не делить число на 2 до тех пор, пока в ответе получится единица. Стоит вспомнить, что 32 - это степень цифры 2. То есть 2⁵ = 32, где 5 - это количество нулей в записи: 1000...
32₁₀ = 100000₂
Число -44
Для перевода отрицательных чисел нам нужно:
Мысленно убрать минус и перевести число в двоичное:
44 / 2 = 22, остаток 0
22 / 2 = 11, остаток 0
11 / 2 = 5, остаток 1
5 / 2 = 2, остаток 1
2 / 2 = 1, остаток 0
1 / 2 = 1, остаток 1
44₁₀ = 101100₂
Дополнить двоичное представление числа нулями слева до 8 бит
var
Ch, Mes, MaxCh: Integer;
begin
Write ('Введите число (1-31):');
ReadLn (Ch);
if (Ch < 1) or (Ch > 31) then begin
WriteLn ('Введено некорректное число');
Exit;
end;
Write ('Введите месяц (1-12): ');
ReadLn (Mes);
if (Mes < 1) or (Mes > 12) then begin
WriteLn ('Введен некорректный месяц');
Exit;
end;
case Mes of
1, 3, 5, 7, 8, 10, 12: MaxCh := 31;
4, 6, 9, 11: MaxCh := 30;
2: MaxCh := 28;
end;
if Ch <= MaxCh then
WriteLn ('Дата правильная')
else
WriteLn ('Дата неправильная!');
end.
// в программе не учитывается то, что в високосном году февраль имеет 29 дней
Числа в памяти компьютера записываются в двоичном виде. Иными словами, число представлено двумя цифрами - 0 и 1.
Число 2121 / 2 = 10, остаток 1
10 / 2 = 5, остаток 0
5 / 2 = 2, остаток 1
2 / 2 = 1, остаток 0
1 / 2 = 1, остаток 1
Запишем воедино остатки с конца и получим двоичное представление числа:
21₁₀ = 10101₂
Число 32Здесь можно не делить число на 2 до тех пор, пока в ответе получится единица. Стоит вспомнить, что 32 - это степень цифры 2. То есть 2⁵ = 32, где 5 - это количество нулей в записи: 1000...
32₁₀ = 100000₂
Число -44Для перевода отрицательных чисел нам нужно:
Мысленно убрать минус и перевести число в двоичное:44 / 2 = 22, остаток 0
22 / 2 = 11, остаток 0
11 / 2 = 5, остаток 1
5 / 2 = 2, остаток 1
2 / 2 = 1, остаток 0
1 / 2 = 1, остаток 1
44₁₀ = 101100₂
Дополнить двоичное представление числа нулями слева до 8 бит101100₂ ⇒ 00101100₂
Изменить 0 на 1, 1 на 000101100₂ ⇒ 11010011₂
Добавить к полученному двоичному числу единицу11010011₂ + 1₂ = 11010100₂
-44₁₀ = 11010100₂
Число 3434 / 2 = 17, остаток 0
17 / 2 = 8, остаток 1
8 / 2 = 4, остаток 0
4 / 2 = 2, остаток 0
2 / 2 = 1, остаток 0
1 / 2 = 1, остаток 1
34₁₀ = 100010₂
Число -112112 / 2 = 56, остаток 0
56 / 2 = 28, остаток 0
28 / 2 = 14, остаток 0
14 / 2 = 7, остаток 0
7 / 2 = 3, остаток 1
3 / 2 = 1, остаток 1
1 / 2 = 1, остаток 1
112₁₀ = 1110000₂
1110000₂ ⇒ 01110000₂01110000₂ ⇒ 10001111₂10001111₂ + 1₂ = 10010000₂-112₁₀ = 10010000₂