x=input ('Valor a codificar DC: ');%Valor DC
b=[0 1 11 111 1111 11111 111111 1111111 11111111 111111111 1111111111 11111111111];
if abs(x)==0
y='00';
elseif abs(x)==1
y='010';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(2));
z=s1-s;
num=num2str(z(1));
else
num=dec2bin(x);
end
elseif abs(x)<4
y='011';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(3));
z=s(1)-s;
num=[num2str(z(1)),num2str(z(2))];
else
num=dec2bin(x);
end
elseif abs(x)<8
y='100';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(4));
z=s(1)-s;
num=[num2str(z(1)),num2str(z(2)),num2str(z(3))];
else
num=dec2bin(x);
end
elseif abs(x)<16
y='101';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(5));
z=s(1)-s;
num=[num2str(z(1)),num2str(z(2)),num2str(z(3)),num2str(z(4))];
else
num=dec2bin(x);
end
elseif abs(x)<32
y='110';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(6));
z=s(1)-s;
num=[num2str(z(1)),num2str(z(2)),num2str(z(3)),num2str(z(4)),num2str(z(5))];
else
num=dec2bin(x);
end
elseif abs(x)<64
y='1110';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(7));
z=s(1)-s;
num=[num2str(z(1)),num2str(z(2)),num2str(z(3)),num2str(z(4)),num2str(z(5)),num2str(z(6))];
else
num=dec2bin(x);
end
elseif abs(x)<128
y='11110';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(8));
z=s(1)-s;
num=[num2str(z(1)),num2str(z(2)),num2str(z(3)),num2str(z(4)),num2str(z(5)),num2str(z(6)),num2str(z(7))];
else
num=dec2bin(x);
end
elseif abs(x)<256
y='111110';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(9));
z=s(1)-s;
num=[num2str(z(1)),num2str(z(2)),num2str(z(3)),num2str(z(4)),num2str(z(5)),num2str(z(6)),num2str(z(7)),num2str(z(8))];
else
num=dec2bin(x);
end
elseif abs(x)<=512
y='1111110';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(10));
z=s(1)-s;
num=[num2str(z(1)),num2str(z(2)),num2str(z(3)),num2str(z(4)),num2str(z(5)),num2str(z(6)),num2str(z(7)),num2str(z(8)),num2str(z(9))];
else
num=dec2bin(x);
end
elseif abs(x)<=1024
y='11111110';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(11));
z=s(1)-s;
num=[num2str(z(1)),num2str(z(2)),num2str(z(3)),num2str(z(4)),num2str(z(5)),num2str(z(6)),num2str(z(7)),num2str(z(8)),num2str(z(9)),num2str(z(10))];
else
num=dec2bin(x);
end
elseif abs(x) <=2040
y='111111110';
if x<0
s=dec2bin(abs(x));
s1=num2str(b(12));
z=s(1)-s;
num=[num2str(z(1)),num2str(z(2)),num2str(z(3)),num2str(z(4)),num2str(z(5)),num2str(z(6)),num2str(z(7)),num2str(z(8)),num2str(z(9)),num2str(z(10)),num2str(z(10))];
else
num=dec2bin(x);
end
end
cat=y
num
if x==0
CofDC=cat
else
CofDC=[cat,num]
end