十六进制转换二进制:用8421拼凑法,首先要清楚的是:四位二进制数表示十六进制的一位,根据以上例子,转换0x3C。首先转换二进制的高四位,也就是十六进制3这个数,可以将8421四位数相加拼凑,如果能得出3,就将该位设置为1,其余为0。
这四个数字中,仅有2+1才能得到3,因此,转换为二进制就是0011。低四位,十六进制数C(十进制数12),只有8+4=12,设置为1,其余为0,就得到1100,高低位结合起来,二进制数为00111100。
二进制与十六进制之间的转换:
1、二进制数转换成十六进制数
由于2的4次方=16,所以依照二进制与八进制的转换方法,将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。
2、十六进制转换成二进制数
如将十六进制数转换成二进制数,只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。
//将16进制的数保存到一个数组中,并将它一个个输出 #include <iostream> using namespace std; int main() { int n = 0x3C; int a[8]; int i; for (i = 0; i != 8; ++i) { a[8 - 1 - i] = n % 2; n /= 2; } for (i = 0; i != 8; ++i) { cout << a[i]; } cout << endl; return 0; }