[英]Splitting a 32-bit binary number into individual digits to be stored in an array
我的程序的一部分需要我讀取用戶輸入的 32 位 IEEE754 格式的二進制數(例如00111111010100000000000000000000
)。
有沒有辦法讓我讀取每個數字並將其存儲到數組中?
我看不出問題出在哪里。
只需遍歷您的 char* 即可填充 int*
int *bit_array = malloc(strlen(string) * sizeof(int));
for (int i = 0; string[i] != '\0'; ++i) {
bit_array[i] = string[i] - '0';
}
如果您以后不需要重用字符串,您甚至可以省去創建 int 數組並只重用 char 數組:
for (int i = 0; string[i] != '\0'; ++i) {
string[i] -= '0';
}
像這樣的東西?
int digits[32];
for (int i = 0; i < 32; i++)
{
char c;
scanf("%c", &c);
if ((c != '0') && (c != 1))
{
printf("error reading input\n")';
break;
}
digits[i] = (c == '0') ? 0 : 1;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.