C語言中可以使用atoi
函數將二進制字符串轉換為十進制整數。下面是一個示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int binaryToDecimal(char *binary) {
int decimal = 0;
// 逐位遍歷二進制字符串
for (int i = 0; i < strlen(binary); i++) {
// 將字符轉換為數字
int bit = binary[i] - '0';
// 計算對應位的十進制值
decimal = decimal * 2 + bit;
}
return decimal;
}
int main() {
char binary[32];
printf("請輸入一個二進制數:");
scanf("%s", binary);
int decimal = binaryToDecimal(binary);
printf("對應的十進制數為:%d\n", decimal);
return 0;
}
在上述示例中,binaryToDecimal
函數接受一個表示二進制數的字符串,并將其轉換為十進制整數。函數首先初始化一個十進制變量decimal
為0,然后逐位遍歷二進制字符串。對于每一位,將字符轉換為數字,并使用乘法和加法操作來計算該位的十進制值。最后,返回十進制整數。
在主函數中,首先通過scanf
函數獲取用戶輸入的二進制字符串,并調用binaryToDecimal
函數進行轉換。最后,將轉換得到的十進制整數打印出來。
請注意,上述示例沒有考慮輸入錯誤的情況,比如用戶輸入的字符串不是合法的二進制數。在實際應用中,你可能需要添加對輸入的驗證和錯誤處理。