输入整数m和n,输出n位长的m的二进制,若n超出实际长度,则左边填充0
时间: 2023-09-09 10:05:19 浏览: 112
### 回答1:
以下是代码实现:
```python
m = int(input("请输入一个整数m: "))
n = int(input("请输入二进制的长度n: "))
bin_m = bin(m)[2:].zfill(n)
print("m的二进制为:", bin_m)
```
解释:首先通过 `input` 函数获取用户输入的整数 `m` 和二进制长度 `n`,然后使用内置函数 `bin(m)` 将十进制整数 `m` 转换为二进制字符串,再使用字符串方法 `zfill(n)` 将二进制字符串填充至指定长度 `n`,最后打印输出即可。
### 回答2:
题目要求输入一个整数m和n,输出m的二进制表示,并且保留这个二进制表示的n位长度。如果n超出了实际的二进制长度,则在左边填充0。
首先,我们可以将m转换为二进制表示。思路是不断将m除以2,直到商为0,然后将每一步得到的余数组成的序列反向排列即可得到m的二进制表示。
接下来,我们判断得到的二进制表示的长度。如果长度小于n,说明需要在左边填充0。我们可以通过将0重复n-长度次得到需要填充的0的序列。最后,将填充的0和二进制表示的序列拼接起来并输出即可。
以下是实现上述功能的Python代码:
```python
def binary_padding(m, n):
# 将m转换为二进制表示
binary = []
while m > 0:
binary.append(str(m % 2))
m //= 2
binary.reverse()
# 判断二进制表示的长度,并在左边填充0
padding = '0' * (n - len(binary)) if n > len(binary) else ''
# 拼接填充的0和二进制表示的序列
result = padding + ''.join(binary)
return result
# 测试
m = int(input("请输入m的值:"))
n = int(input("请输入n的值:"))
result = binary_padding(m, n)
print("m的n位二进制表示为:%s" % result)
```
示例输入:
```
m = 10
n = 6
```
示例输出:
```
m的n位二进制表示为:001010
```
通过这个代码,我们可以根据输入的m和n,得到m的n位二进制表示,并且在左边填充0以保持长度为n位。
### 回答3:
要解决这个问题,我们可以按照以下步骤进行操作:
1. 首先,将输入的整数m转换为二进制形式。
2. 然后,确定变量binary_length,其值为m的二进制表示的长度。
3. 接下来,判断binary_length是否小于n。
4. 如果binary_length小于n,则需要在左边填充0,使其达到长度n。
5. 最后,输出填充后的二进制表示。
下面是一个示例代码,用于实现上述算法:
```python
# 输入整数m和n
m = int(input("请输入整数m:"))
n = int(input("请输入n的长度:"))
# 将m转换为二进制字符串
binary = bin(m)[2:]
# 计算m的二进制表示的长度
binary_length = len(binary)
# 如果二进制长度小于n,则在左边填充0
if binary_length < n:
binary = '0'*(n - binary_length) + binary
# 输出填充后的二进制表示
print(binary)
```
通过运行上述代码,我们可以得到输入整数m的n位长的二进制表示,如果n超出实际长度,则左边会填充0。