二进制字符串数组转换为十进制 C语言
时间: 2023-09-22 13:11:17 浏览: 51
以下是将二进制字符串数组转换为十进制的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` 次方,即左移运算。最后输出二进制字符串和对应的十进制数。
相关问题
c语言编程将输入的十进制整数转换为二进制字符串输出
可以使用以下方法将输入的十进制整数转换为二进制字符串:
1. 将输入的十进制整数除以2,得到商和余数。
2. 将余数存储在一个字符数组或字符串中。
3. 将商作为下一次计算的输入。
4. 重复步骤1-3,直到商为0。
5. 反转字符数组或字符串,得到二进制字符串。
以下是一个示例程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
int decimal;
char binary[32];
int i = 0;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
while (decimal != 0) {
int remainder = decimal % 2;
binary[i++] = remainder + '0';
decimal /= 2;
}
binary[i] = '\0';
printf("Binary equivalent: %s\n", strrev(binary));
return 0;
}
```
在上面的程序中,我们使用了两个变量:`decimal` 存储输入的十进制整数,`binary` 存储转换后的二进制字符串。我们还定义了一个整数变量 `i`,用于追踪 `binary` 数组中下一个可用的位置。
在主函数中,我们首先提示用户输入一个十进制整数,并使用 `scanf()` 函数将其读入 `decimal` 变量中。接下来,我们使用一个循环来将 `decimal` 转换为二进制字符串。在每个循环迭代中,我们计算 `decimal` 的余数并将其存储在 `binary` 数组中。我们还将 `decimal` 的值除以2,以便在下一次迭代中使用商作为输入。
循环结束后,我们在 `binary` 数组的末尾添加一个空字符 (`'\0'`),以便将其转换为一个字符串。最后,我们使用 `strrev()` 函数将 `binary` 字符串反转,并将其打印输出。
用c语言编写程序:将十进制整数num转换成二进制字符串输出
好的,以下是用 C 语言编写的程序,可以将十进制整数转换为二进制字符串并输出:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num, i, j;
char binary[32]; // 最多存储32位二进制数
printf("请输入一个十进制整数:");
scanf("%d", &num);
if(num == 0) // 特殊情况,直接输出0即可
{
printf("0");
return 0;
}
// 将十进制数转换为二进制数
for(i = 0; num > 0; i++)
{
binary[i] = num % 2 + '0'; // 将余数转换为字符
num = num / 2;
}
// 将二进制数字符串反转
for(j = 0; j < i / 2; j++)
{
char temp = binary[j];
binary[j] = binary[i - j - 1];
binary[i - j - 1] = temp;
}
printf("转换后的二进制数为:%s", binary);
return 0;
}
```
输入一个十进制整数,程序会将其转换为二进制字符串并输出。如果输入的整数是0,直接输出0即可。如果需要转换的二进制数超过了32位,需要修改程序中的 `binary` 数组大小。