C++十进制转二进制函数
时间: 2023-09-29 08:03:17 浏览: 51
下面是一个将十进制数转换为二进制数的C++函数:
```c++
#include <bitset>
string decToBinary(int n) {
// 将十进制数转换为二进制字符串
string binary = bitset<32>(n).to_string();
// 找到第一个非零位
size_t pos = binary.find('1');
// 如果没有找到,说明 n 为 0
if (pos == string::npos) {
return "0";
}
// 返回非零位及其后面的字符串
return binary.substr(pos);
}
```
使用 `bitset` 类可以方便地将一个整数转换为二进制字符串。函数首先将整数 `n` 转换为长度为 32 的二进制字符串,然后找到第一个非零位的位置,最后返回该位置及其后面的字符串。
示例:
```c++
int n = 42;
string binary = decToBinary(n);
cout << binary << endl; // 输出 101010
```
相关问题
c++十进制转二进制函数
可以使用位运算符来实现c++的十进制转二进制函数,如下所示:
```c++
#include <iostream>
#include <bitset>
using namespace std;
void decToBinary(int n) {
bitset<32> binaryNum;
int i = 0;
while (n > 0) {
binaryNum[i] = n % 2;
n = n / 2;
i++;
}
for (int j = i - 1; j >= 0; j--)
cout << binaryNum[j];
}
int main() {
int n;
cout << "Enter a decimal number: ";
cin >> n;
cout << "Binary representation of " << n << " is: ";
decToBinary(n);
return 0;
}
```
该函数将十进制数字转换为二进制,使用了C++的位运算符和std::bitset数据类型。在函数中,首先创建一个大小为32的bitset,然后使用while循环将给定的十进制数字转换为二进制。最后,使用for循环打印出二进制数字的每个位,从左到右。
c++ 十进制二进制相互转换函数
十进制转二进制:
我们可以使用除以2取余数的方法将十进制数转换为二进制数。具体步骤如下:
1. 如果给定的十进制数是0,则其对应的二进制数也是0。
2. 从给定的十进制数开始,不断将其除以2,并记录每一步得到的余数。直到商为0为止。
3. 将记录的余数按照从后向前的顺序排列起来,即为对应的二进制数。
二进制转十进制:
我们可以使用乘以2的倍数的方法将二进制数转换为十进制数。具体步骤如下:
1. 如果给定的二进制数是0,则其对应的十进制数也是0。
2. 从给定的二进制数的最高位开始,按照从左到右的顺序依次检查每一位:
- 如果该位是1,则将2的相应次幂乘以1,并将结果累加到最终的十进制数中。
- 如果该位是0,则不对最终的十进制数产生任何影响。
3. 继续对下一位进行相同的操作,直到处理完所有的位。
4. 最终得到的数就是对应的十进制数。
这两种转换函数可以通过编程语言来实现,具体实现细节可以根据不同的编程语言进行调整。