取余数十进制转换为二进制
时间: 2023-12-31 08:22:12 浏览: 168
以下是将十进制整数转换为二进制整数的方法:
1.除2取余,逆序排列法
具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来即可。例如,将十进制数13转换为二进制数:
```
13 / 2 = 6 余 1
6 / 2 = 3 余 0
3 / 2 = 1 余 1
1 / 2 = 0 余 1
```
所以,13的二进制数为1101。
2.对2取余,倒序排列法
具体做法是:将十进制数不断除以2,每次将余数记录下来,直到商为0为止,然后将余数倒序排列起来即可。例如,将十进制数13转换为二进制数:
```
13 % 2 = 1
6 % 2 = 0
3 % 2 = 1
1 % 2 = 1
```
所以,13的二进制数为1101。
相关问题
取余求一个十进制转换为二进制python代码
好的,以下是将十进制数转换为二进制数的 Python 代码,其中使用了取余运算符 `%`:
```python
def decimal_to_binary(decimal_num):
binary_num = ''
while decimal_num > 0:
remainder = decimal_num % 2
binary_num = str(remainder) + binary_num
decimal_num //= 2
return binary_num
```
这个函数接受一个十进制数作为参数,返回一个字符串表示的二进制数。具体实现是通过不断地将十进制数除以 2 并取余,将余数拼接到二进制数的前面,直到十进制数变为 0。
例如,将十进制数 13 转换为二进制数:
```python
>>> decimal_to_binary(13)
'1101'
```
1、用栈解决进制转换问题:十进制转成二进制 用栈实现以下功能:从键盘输入一个十进制正整数,输出其对应的二进制数。 十进制转换为二进制的规则:除二取余,直至商为零,将余数倒排 c++实现
在C++中,我们可以使用栈来实现十进制转二进制的过程。首先,我们需要定义一个函数来完成这个任务。这里是一个简单的步骤描述:
1. 定义一个空栈用于存储二进制结果的每一位。
2. 输入用户提供的十进制数。
3. 使用while循环,当十进制数大于0时:
a. 计算当前十进制数除以2的余数(`rem = num % 2`)。
b. 将余数压入栈中(`push(rem)`)。
c. 更新十进制数(`num /= 2`)。
4. 循环结束后,栈顶元素就是最低位的二进制数字。由于我们是从高位到低位存入栈的,所以需要遍历栈并打印出所有元素,得到完整的二进制表示。
以下是C++代码实现:
```cpp
#include <iostream>
#include <stack>
std::string decimalToBinary(int num) {
std::stack<int> binaryStack;
while (num > 0) {
int remainder = num % 2;
binaryStack.push(remainder);
num /= 2;
}
std::string result;
while (!binaryStack.empty()) {
result += std::to_string(binaryStack.top());
binaryStack.pop();
}
// 如果第一位是0,则前面加一个前导0
if (result[0] == '0') {
result.insert(result.begin(), "0");
}
return result;
}
int main() {
int decimal;
std::cout << "请输入一个十进制正整数: ";
std::cin >> decimal;
std::cout << "对应的二进制数是: " << decimalToBinary(decimal) << std::endl;
return 0;
}
```
阅读全文