
肖老师为您分享以下优质知识
在Visual Studio中将十进制数转换为二进制数,可通过以下方法实现:
一、使用内置函数转换
- 整数部分:
使用`std::bitset`或`std::to_string`函数。例如:
```cpp
include
int decimal = 15;
std::bitset binary(decimal); // 生成8位二进制
// 或
std::string binaryStr = std::to_string(decimal); // 生成字符串
```
- 小数部分:通过循环乘以2并取整实现。例如:
```cpp
double decimal = 13.625;
std::string binaryStr;
int integerPart = static_cast(decimal);
binaryStr += std::bitset(integerPart).to_string(); // 转换整数部分
while (decimal >
0) {
decimal *= 2;
binaryStr += (decimal >
= 1) ? "1" : "0"; // 取整部分
decimal -= (decimal >
= 1) ? 1 : 0; // 减去整数部分
}
// 反转字符串
std::reverse(binaryStr.begin(), binaryStr.end());
```
- Python:
使用内置函数`bin()`,例如`bin(15)`返回`'0b1111'`,需去掉前缀`0b`。
二、手动实现转换
- 通过循环除以2记录余数,整数部分从右到左排列,小数部分从左到右累加。例如:
```cpp
int decimal = 27;
std::string binaryStr;
while (decimal >
0) {
int remainder = decimal % 2;
binaryStr = std::to_string(remainder) + binaryStr;
decimal /= 2;
}
// 结果为"11011"
```
乘2取整法
- 将每一位乘以2并取整数部分,从高位到低位排列。例如:
```cpp
int decimal = 15;
std::string binaryStr;
int power = 31;
while (decimal >
0) {
int bit = (decimal >
>
power) & 1;
binaryStr = std::to_string(bit) + binaryStr;
decimal