Uses crt; const max=15; var a : array[1..max] of integer; i,k0,k1,k3 : integer; k:boolean; begin randomize; k0:=0; k1:=0; writeln('исходные:'); for i:=1 to max do begin a[i]:=random(2); write(a[i]:4); end; for i:=1 to 15 do begin if a[i]=0 then inc(k0) else inc(k1); if a[i]<>0 then k:=true; if k=false then inc(k3); end; writeln; writeln('количество нулей = ',k0); writeln('количество единиц = ',k1); writeln('количество нулей до первой единицы = ',k3); End.
100110101011₂ = 2 475₁₀ = 4653₈ = 9AB₁₆
Объяснение:
100110101011₂ = 1 * 2¹¹ + 0 * 2¹⁰ + 0 * 2⁹ + 1 * 2⁸ + 1 * 2⁷ + 0 * 2⁶ + 1 * 2⁵ + 0 * 2⁴ + 1 * 2³ + 0 * 2² + 1 * 2¹ + 1 * 2⁰ = 2 048 + 256 + 128 + 32 + 8 + 2 + 1 = 2 475₁₀
100110101011₂ - делим на тройки начиная с конца и переводим в 10 СС
011₂ = 1 * 2¹ + 1 * 2⁰ = 2 + 1 = 3₁₀
101₂ = 1 * 2² + 0 * 2¹ + 1 * 2⁰ = 4 + 1 = 5₁₀
110₂ = 1 * 2² + 1 * 2¹ + 0 * 2⁰ = 4 + 2 = 6₁₀
100₂ = 1 * 2² + 0 * 2¹ + 0 * 2⁰ = 4₁₀
записываем снизу вверх и получаем 8 СС
100110101011₂ = 4653₈
100110101011₂ - делим на четверки начиная с конца и переводим в 10 СС
1011₂ = 1 * 2³ + 0 * 2² + 1 * 2¹ + 1 * 2⁰ = 8 + 2 + 1 = 11₁₀
1010₂ = 1 * 2³ + 0 * 2² + 1 * 2¹ + 0 * 2⁰ = 8 + 2 = 10₁₀
1001₂ = 1 * 2³ + 0 * 2² + 0 * 2¹ + 1 * 2⁰ = 8 + 1 = 9₁₀
В качестве цифр 16 СС используются цифры от 0 до 9 и латинские буквы от A до F.
А = 10₁₀ B = 11₁₀ C = 12₁₀ D = 13₁₀ E = 14₁₀ F = 15₁₀
записываем снизу вверх и получаем 16 СС (не забывая заменять числа от 10 до 15 на буквы)
100110101011₂ = 9AB₁₆
const max=15;
var a : array[1..max] of integer;
i,k0,k1,k3 : integer;
k:boolean;
begin
randomize;
k0:=0;
k1:=0;
writeln('исходные:');
for i:=1 to max do
begin
a[i]:=random(2);
write(a[i]:4);
end;
for i:=1 to 15 do
begin
if a[i]=0 then inc(k0) else inc(k1);
if a[i]<>0 then k:=true;
if k=false then inc(k3);
end;
writeln;
writeln('количество нулей = ',k0);
writeln('количество единиц = ',k1);
writeln('количество нулей до первой единицы = ',k3);
End.