python中怎样显示百位数、十位数和个位数的二进制数

编写一个程序,实现从键盘输入一个三位数,用格式化方式显示百位数、十位数和个位的二进制数,如,输入479,则显示:

百位数字: 100,十位数字: 111,个位数字: 1001

Python中取余数的方法为%,取整数的方法为//

x=int(input())
a=x%10
b=x//10%10
c=x//100
print("百位数字:{:b},十位数字:{:b},个位数字:{:b}".format(c,b,a))

img


>>> a,b,c=input("请输入三位数:")
请输入三位数:478
>>> "{:b}{:b}{:b}".format(int(a),int(b),int(c))
'1001111000'
>>>
>>> a=input("请输入三位数:")
请输入三位数:478
>>> "{:b}{:b}{:b}".format(int(a)//100,(int(a)%100)//10,int(a)%10)
'1001111000'

问题拆解

  1. 将一个三位数拆分成三个个位数
  2. 实现求一个个位整数的二进制算法,下面附个人实现的个位数整数转成二进制的算法
    def getSinBin(int1):
    """
    实现个位整数二进制的转化
    :param int1:
    :return:
    """
    if int1 in [0, 1]:
     return ",".join([str(int1)])
    
    else:
     li = []
     flag = True
     while flag:
         ys = int1 % 2  # 取余数
         li.insert(0, str(ys))  # 向下取整去除数
         cs = math.floor(int1/2)
         int1 = cs
         if cs == 1:
             li.insert(0, str(cs))
             flag = False
    
    return ",".join(li)

#include<stdio.h>
int main()
{
    /*x,bw,sw,gw分别用来存放三位正整数及其百位,十位和个位数*/
    int x, bw, sw, gw;
    printf("请输入一个三位正整数:\n");
    scanf_s("%d", &x);
    bw = x / 100;
    sw = (x % 100) / 10;
    gw = x % 10;
    printf("个位数为%d 十位数为%d 百位数为%d", gw, sw, bw);
    return 0;
}

帮忙点个采纳,十分感谢

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632