1. 二进制1000专换成16进制用8421转换法,即自左向右,8*1+4*0+2*0+1*0=0x8,这是所有十六进制转二进制的通用转换方式,位对位对齐转换,分别乘以8421,然后相加。如果二进制数不够位,应在整数位左边或小数位右边用0补足,凑足4的倍数。当然整数部分和小数部分要分别转换。如:将111100转换为16进制,用8421转换法,但只能对齐二进制的低四位,高二位无法对齐的情况下补0,变为00111100B,再用8421:0*8+0*4+1*2+1*1+1*8+4*1+0*2+0*1=0x3C。注意:十六进制数的一位相当于二进制数的四位。
2. 十六进制转换二进制:用8421拼凑法,首先要清楚的是:四位二进制数表示十六进制的一位,根据以上例子,转换0x3C。首先转换二进制的高四位,也就是十六进制3这个数,可以将8421四位数相加拼凑,如果能得出3,就将该位设置为1,其余为0。这四个数字中,仅有2+1才能得到3,因此,转换为二进制就是0011。低四位,十六进制数C(十进制数12),只有8+4=12,设置为1,其余为0,就得到1100,高低位结合起来,二进制数为00111100.
结合你的例子,转换0x8,8421中仅有8与其相匹配,直接设该位为1,其余为0,得1000B。
还有一种比较简单的方法,楼主可以直接查询BCD码,任何一个十六进制数都可以通过查询BCD码得以转换。
另外,楼上的朋友转换的数并非十六进制,而是十进制。
按十六进制规则除2取余(8H的除2取余年上去与十进制一样),除到商0为止。
8/2商4余0
4/2商2余0
2/2商1余0
1/2商0余1
将余数反向连起来,就是二进制的1000B
1000=2^3*1+2^2*0+2^1*0+2^0*0=8
16进制数8和10进制数8是一样的 说我回答得不好可以 但是不要乱说话就带坏小朋友了。比如
1100=1000=2^3*1+2^2*1+2^1*0+2^0*0=12(十进制)=c(十六进制)
这个思维模式本身没有错,你回答得比我好我承认,可是你不要乱污蔑别人。