簡體   English   中英

將 32 位二進制數拆分為單個數字以存儲在數組中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM