c语言中,已有一维数组表示出了二进制数字,我要把这个数字转化成十进制的,请问代码
1个回答
关注
展开全部
您好,很高兴为您解答。假设已有一维数组`arr`表示二进制数字,且该二进制数字位数为`n`。则可以通过以下代码将其转换成十进制数字:```cint binaryToDecimal(int arr[], int n) { int decimal = 0; for (int i = 0; i < n; i++) { decimal += arr[i] * pow(2, n-i-1); } return decimal;}```其中,`pow(2, n-i-1)`计算的是2的(n-i-1)次方,即对应二进制中第i位的权值。每次循环将该位权值乘上该位的数值(0或1),并加入到十进制数中。最终得到的`decimal`即为转换后的十进制数。
咨询记录 · 回答于2023-05-28
c语言中,已有一维数组表示出了二进制数字,我要把这个数字转化成十进制的,请问代码
您好,很高兴为您解答。假设已有一维数组`arr`表示二进制数字,且该二进制数字位数为`n`。则可以通过以下代码将其转换成十进制数字:```cint binaryToDecimal(int arr[], int n) { int decimal = 0; for (int i = 0; i < n; i++) { decimal += arr[i] * pow(2, n-i-1); } return decimal;}```其中,`pow(2, n-i-1)`计算的是2的(n-i-1)次方,即对应二进制中第i位的权值。每次循环将该位权值乘上该位的数值(0或1),并加入到十进制数中。最终得到的`decimal`即为转换后的十进制数。
使用示例 int main() { int arr[] = {1, 0, 1, 0}; // 表示二进制1010 int n = 4; int decimal = binaryToDecimal(arr, n); printf("%d\n", decimal); // 输出10,即二进制1010转化为十进制的结果 return 0;}