Python——求整数原码(采用除2取余方法实现)(tkinter实现)

[功能模块作者]
1.CSDN用户(TDTX),TDTX主页——负责求整数原码功能
   博客园用户(TDTX),TDTX主页

【求整数原码】采用除2取余的方法,逐步形成列表,最后逆转列表即可。
【注】如果某整数求得原码是6位,则根据是正或负,在第7位添加0或1即可。即不设置固定位数的显示模式。

1.qym.py

def qym():
    import tkinter as tk
    ymwindow=tk.Tk()
    ymwindow.title("求原码")
    ymwindow.geometry("650x850")

    def sfh():
        global f
        f=e1.get()
    def szs():
        global s
        s=eval(e2.get())
    def xsqym():
        '''f=e1.get()
        s=eval(e2.get())'''
        global s
        s0=s
        sp=[]
        if f=='+':
            if s==0:
                tx.insert('insert',"\n+{0}计算过程:\n0\n00\n".format(s0))
                tx.insert('insert',"+0原码为:\n")
                tx.insert('insert',"00\n")
            else:
                tx.insert('insert',"\n+{0}计算过程:\n".format(s0))
                while s>0:
                    x=s%2
                    sp.append(x)
                    s=s//2
                    tx.insert('insert',"{0}\n".format(sp))
                sp.reverse()
                sp.insert(0,0)
                tx.insert('insert',"+{0}原码为:\n".format(s0))
                tx.insert('insert',"{0}\n".format(sp))
        if f=='-':
            if s==0:
                tx.insert('insert',"\n-{0}计算过程:\n0\n10\n".format(s0))
                tx.insert('insert',"-0原码为:\n")
                tx.insert('insert',"10\n")
            else:
                tx.insert('insert',"\n-{0}计算过程:\n".format(s0))
                while s>0:
                    x=s%2
                    sp.append(x)
                    s=s//2
                    tx.insert('insert',"{0}\n".format(sp))
                sp.reverse()
                sp.insert(0,1)
                tx.insert('insert',"\n-{0}原码为:\n".format(s0))
                tx.insert('insert',"{0}\n".format(sp))
    lb1=tk.Label(ymwindow, text='输入整数的符号(+/-)', bg='orange', font=('Arial', 12), width=30)
    lb1.pack()
    e1 = tk.Entry(ymwindow,font=('Arial', 14))
    e1.pack()
    bt1=tk.Button(ymwindow,text='确认符号',width=10,font=('Arial', 12),command=sfh)
    bt1.pack()
    
    lb2=tk.Label(ymwindow, text='输入整数(不带符号)', bg='orange', font=('Arial', 12), width=30)
    lb2.pack()
    e2 = tk.Entry(ymwindow,font=('Arial', 14))
    e2.pack()
    bt2=tk.Button(ymwindow,text='确认数字',width=10,font=('Arial', 12),command=szs)
    bt2.pack()
    
    lb3=tk.Label(ymwindow, text='---------------------------------------------', bg='orange', font=('Arial', 12), width=30)
    lb3.pack()
    bt3=tk.Button(ymwindow,text='求解原码',width=10,font=('Arial', 12),command=xsqym)
    bt3.pack()
    
    lb4=tk.Label(ymwindow, text='结果与过程如下:', bg='orange', font=('Arial', 12), width=30)
    lb4.pack()
    tx=tk.Text(ymwindow,width=85,height=40)
    tx.pack()
    ymwindow.mainloop()

2.结果示例

请添加图片描述
请添加图片描述
请添加图片描述

posted @ 2021-11-23 17:16  TDTX  阅读(263)  评论(0编辑  收藏  举报