二进制字符数组转换为十进制在转换为二进制字符数组 C语言
时间: 2023-10-08 15:13:37 浏览: 119
可以使用C语言中的标准库函数`atoi`和`itoa`来实现二进制字符数组和十进制之间的转换。
例如,将二进制字符数组`binary`转换为十进制数值`decimal`:
```c
char binary[] = "110101";
int decimal = atoi(binary);
```
然后再将十进制数值`decimal`转换为二进制字符数组`binary2`:
```c
char binary2[32];
itoa(decimal, binary2, 2);
```
完整的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char binary[] = "110101";
int decimal = atoi(binary);
printf("Decimal: %d\n", decimal);
char binary2[32];
itoa(decimal, binary2, 2);
printf("Binary: %s\n", binary2);
return 0;
}
```
输出结果:
```
Decimal: 53
Binary: 110101
```
相关问题
二进制字符数组转换为十进制再转换为二进制字符数组的算法 C语言
可以使用C语言中的`atoi()`函数将二进制字符数组转换为十进制整数,然后使用`itoa()`函数将十进制整数转换为二进制字符数组。
以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void binaryToDecimal(char *binaryArray, char *decimalArray) {
int decimalValue = atoi(binaryArray); // 将二进制字符数组转换为十进制整数
itoa(decimalValue, decimalArray, 10); // 将十进制整数转换为字符数组
}
int main() {
char binaryArray[] = "101010"; // 二进制字符数组
char decimalArray[32]; // 存储十进制字符数组的空间
memset(decimalArray, 0, sizeof(decimalArray)); // 初始化数组
binaryToDecimal(binaryArray, decimalArray);
printf("Binary array: %s\nDecimal array: %s\n", binaryArray, decimalArray);
return 0;
}
```
输出结果为:
```
Binary array: 101010
Decimal array: 42
```
请注意,这里使用了`itoa()`函数,它可能不是ANSI C标准的一部分,具体实现可能有所不同。
二进制字符串数组转换为十进制 C语言
以下是将二进制字符串数组转换为十进制的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char binary[10] = "10101010"; // 二进制字符串
int decimal = 0; // 十进制数
int length = strlen(binary); // 二进制字符串的长度
for (int i = 0; i < length; i++) {
if (binary[i] == '1') {
decimal += 1 << (length - i - 1); // 左移运算
}
}
printf("Binary: %s\n", binary);
printf("Decimal: %d\n", decimal);
return 0;
}
```
首先声明一个二进制字符串数组 `binary`,并将其初始化为 `10101010`。然后声明一个整型变量 `decimal`,用来存储转换后的十进制数。接着获取二进制字符串的长度 `length`。最后使用循环遍历二进制字符串,如果当前字符是 `1`,则将十进制数加上 `2` 的 `length - i - 1` 次方,即左移运算。最后输出二进制字符串和对应的十进制数。
阅读全文