二进制转化为十六进制
解析:向左边按“四位一段”分段(不足补0),然后,每一段的四位二进制数就对应一位十六进制数。请用二维数组解答。
目前只学了c语言的基础……希望写简单一点,谢谢!
#include<stdio.h> #include<math.h> int main() { char a[10][4]; int b[100]={0}; int i,j,n,t=0; for (i=j=0;t!=1;i++) for (j=0;j<4;j++) { scanf("%c",&a[i][j]); if (a[i][j]=='\n') { t=1; break; } } n=i; i=j=0; while (i<n) { if (a[i][3-j]=='1') b[i]+=pow(2,j); j++; if (j>3) { j=0; i++; } } for (i=0;i<n-1;i++) printf("%x ",b[i]);//还有,位数不足也是要补零的~不然会少了一段 }
[此贴子已经被作者于2016-11-6 11:22编辑过]