用c语言实现十进制转换成二进制
时间: 2023-09-24 18:06:19 浏览: 168
下面是用C语言实现十进制转换成二进制的代码:
```c
#include <stdio.h>
void decimalToBinary(int decimal) {
int binary[32];
int i = 0;
while (decimal > 0) {
binary[i] = decimal % 2;
decimal = decimal / 2;
i++;
}
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
printf("Binary equivalent: ");
decimalToBinary(decimal);
printf("\n");
return 0;
}
```
代码的思路是将十进制数不断除以2,将余数存储在数组中,然后倒序输出数组中的每一位。
相关问题
如何用c语言将十进制转换成二进制
在C语言中,可以使用标准库函数`itoa()`或者自定义算法将十进制整数转换为二进制字符串。这里我们提供一种简单的非库函数方法,即通过循环和除法运算实现:
```c
#include <stdio.h>
#include <string.h>
void dec_to_bin(int num, char* binary) {
int i = 0;
while (num > 0) {
binary[i] = num % 2 + '0'; // 余数+0变为字符(0-9)
num /= 2; // 将原数字右移一位
i++;
}
binary[i] = '\0'; // 结束字符串,添加空字符
// 反转数组,因为最初是从最低位开始存储的
for (int j = 0; j < strlen(binary) / 2; j++) {
char temp = binary[j];
binary[j] = binary[strlen(binary) - j - 1];
binary[strlen(binary) - j - 1] = temp;
}
}
int main() {
int decimal = 42;
char binary[50]; // 预计最大32位,加1以容纳'\0'
dec_to_bin(decimal, binary);
printf("十进制 %d 转换成二进制是: %s\n", decimal, binary);
return 0;
}
```
用c语言把十进制转换成二进制和十六进制
在C语言中,将十进制数转换为二进制和十六进制通常可以使用库函数`itoa()`、`printf()`和位操作。以下是基本的步骤:
**转换为二进制**:
```c
#include <stdio.h>
#include <stdlib.h>
// 自定义函数将整数转为二进制字符串
void dec_to_bin(int num) {
char binary[50];
int i = 0;
while (num > 0) {
binary[i] = num % 2 + '0';
num /= 2;
i++;
}
// 反转字符串,因为`itoa()`是从右向左填充
for (int j = 0; j < i / 2; j++) {
char temp = binary[j];
binary[j] = binary[i - 1 - j];
binary[i - 1 - j] = temp;
}
printf("Binary representation: %s\n", binary);
}
int main() {
int decimal = 42; // 要转换的十进制数
dec_to_bin(decimal);
return 0;
}
```
**转换为十六进制**:
```c
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h> // 对于`isxdigit()`函数
// 自定义函数将整数转为十六进制字符串
void dec_to_hex(int num) {
char hex[50];
int index = 0;
while (num != 0) {
hex[index++] = isxdigit(num % 16) ? num % 16 + '0' : num % 16 + 'A' - 10;
num /= 16;
}
if (index == 0) {
printf("Hexadecimal representation: 0\n");
} else {
hex[--index] = '\0'; // 添加结束符
printf("Hexadecimal representation: %s\n", hex);
}
}
int main() {
int decimal = 42;
dec_to_hex(decimal);
return 0;
}
```
记得处理边界条件,例如空值或负数的情况。上述代码仅作为示例,实际使用时可能需要添加错误检查。
阅读全文
相关推荐












