【Python】输入整数m和n,输出n位长的m的二进制,若n超出实际长度,则左边填充0。

首先:我们要使用到zfill() 这个方法,zfill方法返回指定长度的字符串,原字符串右对齐,前面填充0。其次我们需要使用到format()方法格式化字符串。代码如下:

// An highlighted block
>>m=int(input())
>>n=int(input())
>>print('{:0b}'.format(m).zfill(n))

输出结果如下:

// An highlighted block
>>123
>>12
>>000001111011

纯萌新,有什么错误请大佬指出

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值