Переведите целые числа 513,600,266,8700 из десятичной системы счисления в двоичную, шестнадцатеричную, восьмиричную
513/2=256(1)/2=128(0)/2=64(0)/2=32(0)/2=16(0)/2=8(0)/2=4(0)/2=2(0)/2=1(0)/2=0(1)
записываем остатки в обратном порядке:
513(10)=1000000001(2)
513/16=32(1)/16=2(0)/16=0(2)
513(10)=201(16)
513/8=64(1)/8=8(0)/8=1(0)/8=0(1)
513(10)=1001
600(10)=1001011000(2)=258(16)=1130(8)
266(10)=100001010(2)=10A(16)=412(8)
8700(10)=10000111111100(2)=21FC(16)=20774(8)
8700/16=543(12)/16=33(15)/16=2(1)/16=0(2)
8700(10)=21FC(16)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Двоичная:
1000000001, 1001011000, 100001010, 10000111111100
Восьмиричная:
1001, 1130, 412, 20774
Шеснадцатиричная:
201, 258, 10а, 21fc
function Form1.strHEX(sour:Integer):String;
var
c:Char; b:Byte absolute c;
s:String; i:Word;
begin
i:=sour; s:='$';
if (sour>$FFFF) or (sour<0) then begin ShowMessage('OvErFlOw'); exit; end;
b:=(i shr 12)+$30; s:=s+c; // 3 ðàçðÿä
i:=sour; b:=((i shr 8) and $0F)+$30; s:=s+c; // 2
i:=sour; b:=((i shr 4) and $0F)+$30; s:=s+c; // 1
i:=sour; b:=(i and $0F)+$30; s:=s+c; //0
Result:=s;
end;
Откуда взялась величина $30?
Вот: http://foxtools.ru/ASCII#1251