После преобразования растрового 256-цветного графического файла в 4-цветный формат его размер уменьшился на 18 кбайт. каков был размер исходного файла в кбайтах?
При использовании 256 цветов для хранения одной точки изображения требуется log(2)256 = 8 бит, при использовании 4 цветов - log(2)4 = 2 бита. Если K - количество точек изображения, то объем изображения до преобразования = K*8 бит, объем изображения после преобразования = K*2 бита. 18 Кбайт = 18*1024*8 бит K*8 = K*2+18*1024*8 K = 3*1024*8 Размер исходного файла = 3*1024*8*8 бит = 3*1024*8*8/(8*1024) Кбайт = 24 Кбайта
Function t10_q(x,q:longint):string; const s='0123456789ABCDEFGHI'; var t,m:longint; r:string; begin t:=x; r:=''; while t>=q do begin m:=t mod q; r:=s[m+1]+r; t:=t div q end; t10_q:=s[t+1]+r end;
{ тестирование } var q,n:longint; begin Write('Введите основание системы счисления (2-20): '); Readln(q); Write('Введите натуральное число для перевода: '); Readln(n); Writeln(n,'(10)=',t10_q(n,q),'(',q,')') end.
Тестовое решение: Введите основание системы счисления (2-20): 16 Введите натуральное число для перевода: 16350 16350(10)=3FDE(16)
Var A:array[1..4] of integer; i,j,R,P:integer; function HOD(c,b:integer):integer; begin while c<>b do if c>b then c:=c-b else b:=b-c; HOD:=c; end; function HOK(c,b, RR:integer):integer; begin if ((c mod b=0) or (b mod c=0)) and ((c div b > 1) or (b div c > 1)) then begin if c>b then HoK:=c else HOK:=b; end else HOK:=(c*b) div RR; end; begin A[1]:=36; A[2]:=54; A[3]:=18; A[4]:=15; P:=1; R:=HOD(A[1],A[2]); P:=HOK(A[1], A[2], R); for i:=3 to 4 do begin R:=HOD(R, A[i]); P:=HOK(P, A[i],R); end; writeln('HOK = ',P); end.
Если K - количество точек изображения, то объем изображения до преобразования = K*8 бит, объем изображения после преобразования = K*2 бита.
18 Кбайт = 18*1024*8 бит
K*8 = K*2+18*1024*8
K = 3*1024*8
Размер исходного файла = 3*1024*8*8 бит = 3*1024*8*8/(8*1024) Кбайт = 24 Кбайта