如何将一个16进制字符串转化成10进制字符串
CString aa="00000344";
![如何将一个16进制字符串转化成10进制字符串 将字符串转化为16进制](http://img.aihuau.com/images/31101031/31100648t015a84473a910c4a36.gif)
CString bb;
bb如何才能是“836"呢?
[程序实现]
CString aa="00000344";
CString bb;
int data=0;
for(int i=0;i<aa.GetLength();i++)
{
data=data*16;
if((aa[i]>='a') && (aa[i]<='f'))
data=data+aa[i]-'a'+10;
else
if((aa[i]>='A') && (aa[i]<='F'))
data=data+aa[i]-'A'+10;
else
if((aa[i]>='0') && (aa[i]<='9'))
data=data+aa[i]-'0';
}
bb.Format("%d",data);
AfxMessageBox(bb);
16进制转10进制,16进制转8进制
1.比如:216是16进制,转10进制:
=2*16^2+1*16^1+6*16^0
=512+16+6
=536
1.比如:125是16进制,转8进制:
先化成10进制 的,
=1*16^2+2*16^1+5*16^0
=256+32+5
=293
8^1=8
8^2=64<293
8^3=512>293
所以293=4*8^2+4*8^1+5*8^0
所以:转8进制后=445
2.也可以一步到位:
125(16)
=1*16^2 + 2*16^1 +5*16^0
=4*8^2 + 4*8^1 +5*8^0
=445(8)