【发布时间】:2016-07-06 01:22:30
【问题描述】:
需要帮助。到目前为止,我已经弄清楚了如何显示输入值的二进制转换,但我需要一些关于如何将这些二进制值添加到数组中的提示,以便实际能够使用二进制值。是否可以通过开关盒填充数组?就像我在'0'的情况下这样做的。出于某种原因,当我打印 binary[i] 的值时,它返回 0,而不是 0000。
int main()
{
int i = 0;
char hexstring[] = "24020004";
int binary[8];
while(hexstring[i])
{
switch(hexstring[i])
{
case '0': binary[i] = 0000; printf("%i", binary[i]); printf("0000"); break;
case '1': printf("0001"); break;
case '2': printf("0010"); break;
case '3': printf("0011"); break;
case '4': printf("0100"); break;
.
.
.
case 'f': printf("1111"); break;
default: printf("\nInvalid hexadecimal digit %c ", hexstring[i]);
}
i++;
}
return 0;
}
【问题讨论】:
-
什么
case '0': binary[i] = 0x0; break; case '1': binary[i] = 0x1; break; ...... case 'f': binary[i] = 0xf; break;? -
"..当我打印 binary[i] 的值时,它返回 0,而不是 0000" -
binary[i]是一个数字(特别是有符号整数)并且数字没有“有“前导零。您可以强制printf显示他们:printf("%04d", binary[i]);。但这并不意味着它们被“存储”在值本身中。
标签: c arrays binary switch-statement hex