十进制转化为二进制字符串输出,C语言
时间: 2023-05-23 09:06:15 浏览: 143
实现代码如下:
```c
#include <stdio.h>
void decimalToBinary(int decimal) {
int binary[32];
int i = 0;
// 将十进制数转化为二进制数组
while (decimal > 0) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
// 将二进制数组输出为字符串
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
}
int main() {
int decimal;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
printf("转化为二进制数为:");
decimalToBinary(decimal);
return 0;
}
```
使用方法:
1. 编译运行程序;
2. 输入一个十进制数;
3. 程序将会输出该数的二进制字符串。
相关问题
c语言十进制整数转二进制以字符串形式输出
在C语言中,将十进制整数转换成二进制并以字符串形式输出,可以使用库函数`itoa()`或者自定义一个递归函数实现。这里我将介绍一种常见的手动方法,即使用除2取余法:
```c
#include <stdio.h>
#include <stdlib.h> // 包含itoa函数所在的头文件
// 自定义函数将十进制转换为二进制字符串
char* decimal_to_binary(int num) {
char binary[33]; // 存储结果的数组,最大支持32位整数
if (num == 0) {
binary[0] = '0';
return binary;
}
int i = 0;
while (num > 0) {
binary[i++] = num % 2 + '0'; // 将余数加一转为字符(ASCII)
num /= 2; // 向左移位
}
// 如果最开始有前导零,则不需要补零
binary[i] = '\0';
reverse(binary); // 反转字符串,因为一开始是从低位到高位存储的
return binary;
}
// 用于反转字符串的辅助函数
void reverse(char *str) {
int start = 0, end = strlen(str) - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
int main() {
int decimal = 42;
char *binary_str = decimal_to_binary(decimal);
printf("十进制 %d 转换成二进制为: %s\n", decimal, binary_str);
free(binary_str); // 注意释放内存
return 0;
}
```
将二进制转化为十进制c语言用字符串输入
在C语言中,将二进制字符串转换成十进制整数通常需要遍历字符串并使用位运算来进行计算。下面是一个简单的示例,展示了如何实现这个过程:
```c
#include <stdio.h>
#include <string.h>
// Function to convert binary string to decimal
int binaryToDecimal(char *binaryStr) {
int len = strlen(binaryStr);
long decimal = 0;
for (int i = 0; i < len; i++) {
if (binaryStr[i] == '1') {
decimal += pow(2, len - 1 - i); // 从最低位开始乘以2的幂次
}
}
return decimal;
}
int main() {
char binary[100];
printf("Enter a binary number: ");
fgets(binary, sizeof(binary), stdin); // Read input with newline character
// Remove the newline character from input
size_t len = strlen(binary);
if (binary[len - 1] == '\n') {
binary[len - 1] = '\0'; // Replace newline with null terminator
} else {
printf("Invalid input! Please enter only a binary number.\n");
return 1;
}
int decimalValue = binaryToDecimal(binary);
printf("The decimal equivalent is: %d\n", decimalValue);
return 0;
}
```
在这个程序中,用户输入一个以字符串形式表示的二进制数字,然后`binaryToDecimal`函数会逐位将其转换为十进制数。
阅读全文