C语言十进制转换二进制
时间: 2023-09-06 13:10:10 浏览: 35
可以使用移位运算符和按位与运算符将十进制转换为二进制。
以下是一个示例代码:
```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++;
}
printf("Binary: ");
for (int j = i - 1; j >= 0; j--) {
printf("%d", binary[j]);
}
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
decimalToBinary(decimal);
return 0;
}
```
该代码将输入的十进制数转换为二进制,并输出结果。
相关问题
c语言十进制转换二进制
C语言可以使用多种方法实现十进制转换为二进制,其中包括递归和循环两种方式。递归方式的代码如下:
```
#include <stdio.h>
void dec2bin(int dec) {
if(dec > 1) dec2bin(dec/2);
printf("%d", dec%2);
}
int main() {
int dec;
printf("请输入一个十进制数:");
scanf("%d", &dec);
printf("对应的二进制数为:");
dec2bin(dec);
printf("\n");
return 0;
}
```
循环方式的代码如下:
```
#include <stdio.h>
int main() {
int num;
int temp;
int i=0;
int arr[20];
printf("请输入一个十进制数:\n");
scanf("%d", &num);
do {
temp=num%2;
num=num/2;
arr[i++]=temp;
} while (num!=0);
for (int j = i-1; j>=0; j--)
printf("%d",arr[j]);
return 0;
}
```
以上两种方法都可以实现十进制转换为二进制,具体选择哪种方法取决于个人喜好和实际需求。
C语言二进制转换为十进制
在C语言中,可以使用标准库函数`strtol()`将二进制字符串转换为十进制整数。该函数的原型如下:
```c
long int strtol(const char *str, char **endptr, int base);
```
其中,`str`是待转换的字符串,`endptr`是一个指向字符指针的指针,用于存储第一个未被转换的字符的指针(即指向结束符'\0'之后的位置),`base`表示转换的进制,通常为2、8、10或16。
以下是一个将二进制字符串转换为十进制整数的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char bin_str[] = "10101010"; // 二进制字符串
char *endptr; // 未被转换的字符指针
long int dec_num;
dec_num = strtol(bin_str, &endptr, 2); // 将二进制字符串转换为十进制整数
printf("Binary: %s\n", bin_str);
printf("Decimal: %ld\n", dec_num);
return 0;
}
```
输出结果为:
```
Binary: 10101010
Decimal: 170
```
可以看到,二进制字符串"10101010"被转换为了十进制整数170。