c语言怎么十进制转二进制
时间: 2024-11-13 07:14:26 浏览: 60
在C语言中,你可以使用库函数`itoa()`或者自定义函数来将十进制整数转换成二进制字符串。但是需要注意的是,`itoa()`函数并不直接存在于C标准库中,需要包含一些特定的头文件(如`stdlib.h`),而且这个函数在某些系统上可能不可用。下面是一个使用`std::itoa()`的例子(如果你使用的是支持C++11及以后版本的编译器):
```c++
#include <iostream>
#include <sstream>
std::string decToBin(int decimalNum) {
std::stringstream ss;
ss << std::bitset<8>(decimalNum);
return ss.str();
}
int main() {
int num = 42;
std::string binary = decToBin(num);
std::cout << "Binary representation of " << num << " is: " << binary << std::endl;
return 0;
}
```
如果要编写一个纯C风格的解决方案,你需要一个循环来手工计算每一位的二进制值,例如:
```c
#include <stdio.h>
void decToBin(int decimalNum, char binary[]) {
int i = 0;
while (decimalNum > 0) {
binary[i++] = decimalNum % 2 + '0';
decimalNum /= 2;
}
binary[i] = '\0'; // 添加终止符
// 反转数组,因为最初是从低位向高位填充的
for (int j = 0; j < i / 2; ++j) {
char temp = binary[j];
binary[j] = binary[i - j - 1];
binary[i - j - 1] = temp;
}
}
int main() {
int num = 42;
char binary[64]; // 确保足够的空间存储二进制数
decToBin(num, binary);
printf("Binary representation of %d is: %s\n", num, binary);
return 0;
}
```
阅读全文
相关推荐














