16进制转换10进制,如何转换这个数字

1数字:0F 01
2数字:1C 01

有人说要倒过来转换比如1C 01变成 11C 再转换十进制。我不明白。帮我介绍下如何将上面那2个数字转化为10进制。
补充下:我玩的是天龙八部单机版。物品代码是[17 01] [1A 02]这样的数据。 将【17 01】转化为117然后将117按照16进制转10进制计算得到十进制数字279。 在金山游侠中搜索这个十进制数字就能找到地址。

为什么要倒过来呢?[17 01]117 【1D 01】变成11D。

间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。这里不再做图片用法解释。直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。

1.二进制转十六进制方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。(具体用法如下图)

2.十六进制转二进制方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。(具体用法如下图)

3.十进制转八进制或者十六进制有两种方法第一:间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。这里不再做图片用法解释。第二:直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。(具体用法如下图)

4.八进制或者十六进制转成十进制方法为:把八进制、十六进制数按权展开、相加即得十进制数。(具体用法如下图)

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-15
可以先把16进制的转换成2进制,0F 01就是0000 1111 0000 0001,然后换成10进制就是3841了;16进制换成2进制是基础,一个1位的16进制数为一个4位的2进制数,本身没有什么诀窍,记住就可以了,0H(16进制)=0000(2进制)、1H=0001、2H=0010、3H=0011、4H=0100、5H=0101、6H=0110、7H=0111、8H=1000、9H=1001、A=1010、B=1011、C=1100、D=1101、E=1110、F=1111。

当然你也可以直接转换,公式类似于2进制转10进制一样。即第1位(从右到坐,即从低位开始算)乘以16的0次方+第2位乘以16的1次方+第3位的乘以16的2次方……这样一直这样,加到位结束。如上例就是0F01=1*16的0次方+0乘以的16的1次方+15乘以16的2次方+0乘以16的3次方=1+0+3840+0=3841。
最后给出你例子的答案:0F01=3841;1C01=7169;
你可以利用计算机的科学计算器试试!本回答被提问者采纳
第2个回答  2010-09-25
倒过来转 的意思是这样的,

char num1[] = {0x0f,0x01};
num1 是两个字节,所以转换成short为例,
如果将他转换成 short,
short num;
memcpy(&num, num, 2);的结果就是 num = 010f 了

所以只能这样,

if(num1[0]>='0' && num[0] <= '9'){
num = (num1 - '0') << 8;
}else if(num1[0]>='a' && num1[0] <= 'f'){
num = (num1[0] - 'a') << 8;
}else if(num1[0]>='A' && num1[0] <= 'F'){
num = (num1[0] - 'A') << 8;
}

if(num1[1]>='0' && num[1] <= '9'){
num += (num1[1] - '0') << 8;
}else if(num1[1]>='a' && num1[1] <= 'f'){
num += (num1[1] - 'a') << 8;
}else if(num1[1]>='A' && num1[1] <= 'F'){
num += (num1[1] - 'A') << 8;
}
第3个回答  2012-11-20
貌似是汇编,【17 01】,后面01是高位,前面17是低位。电脑就是这么认它的。咱人看当然要倒过来了。
第4个回答  2010-09-25
0F 01= 0*16^3+15*16^2+0*16+1=3841
1C 01=1*16^3+12*16^2+0*16+1=7169
相似回答