从后向前。每位如果为1,那么加上对应的2的bit次幂。
bit从0开始。
这里是3 4 6三位为1
所以
1011000 = 2^3+2^4+2^6=8+16+64=88
以下为pascal语言函数子程序:
function convert10(c:string;a:integer):longint;
{c为a进制的字符串,a为原串的进制数(在2~16范围内)}
{函数返回的结果为长整型10进制整数}
var
k,i,j:integer;
cc:longint;
ch:char;
begin
k:=length(c);
cc:=0;
for i:=1 to k do begin
ch:=c[i];
case ch of
'A'..'F':j:=ord(ch)-ord('A')+10;
'a'..'f':j:=ord(ch)-ord('a')+10;
'0'..'9':j:=ord(ch)-ord('0');
end;
cc:=cc*a+j;
end;
convert10:=cc;
end;
使用加权展开式:
1*2^6+0*2^5+1*2^4+1*2^3+0*2^2+0*2^1+0*2^0=88