面试题中二进制转换问题,将一个二进制数,从某位开始进行,n位转换,程序如下所示:
1 /************************************************************************/ 2 /* 功能:实现二进制数X的转化,p为转化位数,n为转化长度。例x=0b0001 0001,p=4,n=3转换后x=0b0110 0001 3 /* 作者:ZL 4 /* 日期:2018-04-08 14:38 5 /************************************************************************/ 6 7 #include8 9 unsigned int convert(unsigned int x,int p,int n);10 void D_TO_B(unsigned int x);11 12 13 int main(void)14 {15 16 unsigned int x=17;17 unsigned int y;18 19 printf("转换前:");20 D_TO_B(x);21 printf("\n");22 23 y=convert(x,4,3);24 printf("转换后:");25 D_TO_B(y);26 printf("\n");27 28 29 30 }31 32 33 unsigned int convert(unsigned int x,int p,int n)34 {35 unsigned int Bit=0;36 unsigned int temp=1;37 int i=0;38 39 for (i=0;i
程序在VC++6.0中运行结果如下图所示: