進位制轉換問題

時間 2022-09-16 03:20:05

1樓:武風

十進位制數n轉k進位制 用短除法

pascal

var n,len,i,k:longint;

a:array[1..100] of longint;

begin

read(n);

read(k);

repeat

inc(len);

a[len]:=n mod k;

n:=n div k;

until n=0;

for i:=len downto 1 do beginif a[i]>=10 then write(chr(a[i]-10+ord('a'))) else write(a[i]);

end;

end.

n進位制數用字串s儲存,再轉化為十進位制

vars:string; c:char;

i,j,l,sum,len:longint;

function power (x,y:longint):longint;

var i:longint;

begin

power:=1;

if y=0 then exit;

for i:=1 to y do power:=power*x;

end;

begin

read(c);

while c<>' ' do

begin

s:=s+c;

read(c);

end;

read(l); len:=length(s);

for i:=len downto 1 dobegin

if ord(s[i])-ord('0')<10 then inc(sum,(ord(s[i])-ord('0'))*power(l,len-i))

else

begin

case s[i] of

'a':j:=10;

'b':j:=11;

'c':j:=12;

'd':j:=13;

'e':j:=14;

'f':j:=15;

end;

inc(sum,j*power(l,len-i));

end;

end;

writeln(sum);

end.

2樓:匿名使用者

參見

微控制器,進製轉換問題?進製計算機進製轉換問題

十六進製459c4000轉成二進位是0100 0101 1001 1100 0100 0000 0000 0000最高位為符號位,0表示整數,1表示負數,因此這個是乙個正數。然後往後數8個位,這8個位叫階碼,就是1 1011 110 十進位的這個127是固定的 12。將階碼換成1.然後就是 1100...

C語言進位制轉換問題,C語言中各進位制的轉換問題

大數轉換成小數進位制時主要是求餘演算法,小數進位制轉換成大數進位制時要用n次方演算法。求餘後把數字儲存起來輸出就可以了。16進位制 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 a 1010 b 1011 ...

十進位制轉換成八進位制的轉換方法,10進位制轉8進位制方法

方法1 採用除8取餘法。例 將十進位制數115轉化為八進位制數。結果 115 10 163 8 方法2 先採用十進位制化二進位制的方法,再將二進位制數化為八進位制數。例 115 10 1110011 2 163 就是十進位制數直接除以8,得出得整數就是八進位制的十位以前的數,餘數是八進位制個位數,看...