Var f:file of integer; a,i,k,n:integer; begin randomize; assign(f,'file'); rewrite(f); repeat write('Четное количество элементов: '); readln(n); until(n>1) and (n mod 2=0); for i:=1 to n do begin a:=random(100); write(f,a); end; writeln('Содержание исходного файла:'); reset(f); while not eof(f) do begin read(f,a); write(a,' '); end; close(f); writeln; reset(f); seek(f,filesize(f)div 2); truncate(f); writeln('Содержание измененного файла:'); reset(f); while not eof(f) do begin read(f,a); write(a,' '); end; close(f); readln end.
1. нумеруешь все цифры двоичного числа справа налево начиная нумерацию с 0 2. для всех позиций на которых стоят 1 вычисляешь соответствующую степень двойки (зависит от нумерации) 3. складываешь все вычисленные степени двойки и получаешь искомое десятичное число. Например, 1101 это 8+4+1=13. из 10 в 2: 1. делишь число на 2 и записываешь остатки от деления. Деление продолжаешь пока не получишь 0 2. записываешь остатки от деления в обратном порядке их нахождения Например, для числа 25: 25 | 1 12 | 0 6 | 0 3 | 1 1 | 1 получаем в двоичной 11001
1
Объяснение:
Если количество бит в представлении меньше 8, то число дополняется нулями с начала.
1100001 содержит 7 бит, значит нужно дополнить одним нулем в начале, т.е. получаем 01100001