二进制转化为十六进制
解析:向左边按“四位一段”分段(不足补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编辑过]
