现在时间是:

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

时间:2020-06-30 来源:原创 作者:admin 点击:加载中..
   可以先把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; 你可以利用计算机的科学计算器试试! 间—把十进制转成二,然后再由制转进制或者十六进制。这里不再做图片用法解释。直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。 1.二进制转十六进制方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。(具体用法如下图) 2.十六进制转二进制方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。(具体用法如下图) 3.十进制转八进制或者十六进制有两种方法第一:间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。这里不再做图片用法解释。第二:直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。(具体用法如下图) 4.八进制或者十六进制转成十进制方法为:把八进制、十六进制数按权展开、相加即得十进制数。(具体用法如下图) 0F 01=0*16^3+15*16^2+0*16+1=3841 1C 01=1*16^3+12*16^2+0*16+1=7169 貌似是汇编,【17 01】,后面01是高位,前面17是低位。电脑就是这么认它的。咱人看当然要倒过来了。 倒过来转 的是这样的, 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; }

(责任编辑:admin)

------分隔线----------------------------
最新评论 查看所有评论
加载中......
发表评论 查看所有评论